使用Delphi编写自动关闭Windows信使服务窗体程序
Windows信使服务是Windows为了方便尽心系统管理而设置的一项工具,初衷是很好的可以使得管理员方便的在局域网内发布消息给各个用户。
可是却常常被一个菜的不能再菜的家伙利用,到处扰乱别人的学习和生活。每每让人在用电脑的同时突然弹出一个确认对话框。如果只是在办公的还好,尽管是最上层窗口,只要关闭了即可。可是如果是在CS,则会突然跳出CS,要求再去点击确认,让人烦躁的没办法。
如下程序使用Delphi编写可以自动识别信使服务的弹出窗口并自动关闭。内部使用了Timer空间来定时识别信使服务窗体。原本还打算用线程,可是后来调试出了点问题就把这个垃圾功能去掉了。
unit untmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, untclosew, ExtCtrls, winprocs;
type
Tfrmmain = class(TForm)
Label1: TLabel;
edtcount: TEdit;
btnok: TButton;
Timer1: TTimer;
procedure btnokClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
closew:tclosew;
end;
var
frmmain: Tfrmmain;
implementation
{$R *.dfm}
procedure Tfrmmain.btnokClick(Sender: TObject);
begin
if btnok.caption='启动服务' then
begin
btnok.Caption:='停止服务';
timer1.Enabled:=true;
end
else
begin
btnok.Caption:='启动服务';
timer1.Enabled:=false;
closew.suspend;
end;
closew.FreeOnTerminate:=true;
end;
procedure Tfrmmain.Timer1Timer(Sender: TObject);
var
hwndwin:hwnd;
begin
hwndwin:=winprocs.FindWindow(nil,pchar('信使服务 '));
if hwndwin<>0 then
begin
closew.Resume;
end
else
begin
if not(closew.Suspended) then
closew.suspend;
end;
end;
procedure Tfrmmain.FormCreate(Sender: TObject);
begin
closew:=tclosew.Create(true);
end;
procedure Tfrmmain.FormDestroy(Sender: TObject);
begin
if closew<>nil then
begin
closew.FreeOnTerminate:=true;
closew.Terminate;
end;
end;
end.
unit untclosew;
interface
uses
Classes, sysutils, windows, winprocs, messages;
type
tclosew = class(TThread)
private
protected
procedure update;
procedure Execute; override;
end;
implementation
uses untmain;
procedure tclosew.Execute;
var
hwndwin:hwnd;
begin
while not(terminated) do
begin
hwndwin:=winprocs.FindWindow(nil,pchar('信使服务 '));
if hwndwin<>0 then
begin
winprocs.SendMessage(hwndwin,WM_CLOSE,0,0);
synchronize(update);
end;
end;
end;
procedure tclosew.update;
var
i:integer;
begin
i:=strtoint(untmain.frmmain.edtcount.text);
i:=i+1;
untmain.frmmain.edtcount.text:=inttostr(i);
end;
end.
相关推荐
delphi自动弹出式提示窗体,可以像QQ一样弹出提示框的哦
用delphi7编写windows服务程序
有现成代码在用
从台湾论坛网上下载的一个代码。调试通过,
Delphi编写的自动安装数据库程序..rar
Delphi 编写的软件自动升级程序实例Delphi 编写的软件自动升级程序实例
程序代码很短,但很有用,解决了Delphi程序设计中窗体及其包含的控件自适应不同屏幕分辨率的问题。 即你的程序可能是在1024X768屏幕分辨率下设计的,但是需要在屏幕分辨率为1280X1024的机器上运行,如果不做专门的...
Delphi程序设计教程(第五章 Windows窗体和常用组件)
Delphi编写的小学生数字自动出题程序..rar
局域网信使服务发送小工具,Delphi编写的源代码,向局域网内的IP发送信息,前提是对方的计算机必须开启了信使服务,否则是发不过去的。利用其提供的函数来实现同样的功能,能够指定的IP地址发送信息。你将通过这个小...
delphi7代码编辑运行环境下,Delphi Messagebox自动关闭功能演示代码,以及可运行程序,无须任何.net编译平台,windows下原生程序。 使用方法:打开对话框前调用 SetDlgAutoClose { 参数1: 设定多长时间后关闭 }...
用Delphi编写的消息对话框(包括信息提示对话框、警告提示对话框、出错对话框)的自动关闭,不用手动点击确定或取消来关闭。
Delphi禁止系统或指定程序自动关闭/退出,具体自己下载源码一看究竟,可防止程序自动退出的,也可防止windows自动关闭,代码简单,程序运行截图是一个空窗体什么都没有,这里也就不截图了。
用Delphi编写安装程序 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。 很多报刊文章...
delphi写的托盘窗体系统服务程序,全部Delphi 自带控件,不使用第三方控件,方便移植修改
delphi嵌套第三方应用程序,本例子中以Delphi窗体嵌套系统自带的记事本为例。
delphi windows服务程序 XE10可运行 Project2.dpr 可编译成普通程序 m33.dpr 可编译成服务程序 此程序展示如何将普通程序套在服务程序中,调试方便。 (管理员身份运行 CMD /install 安装 /uninstall 卸装)
软件特性: ◎ 升级动作完全由脚本定制; ◎ 升级动作支持: 替换、增加、删除和执行; ◎ 支持自升级(即对升级程序自身进行升级); ◎ 独立于宿主程序,无源码耦合; 包含说明和源代码
利用Delphi编写Socket通信程序