`
cfeers
  • 浏览: 140214 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Delphi编写自动关闭Windows信使服务窗体程序

 
阅读更多

使用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编写windows服务程序

    标题 "Delphi编写Windows服务程序" 涉及的核心知识点主要集中在使用Delphi这一编程环境来创建能够在Windows操作系统后台运行的服务程序。Windows服务是一种特殊类型的应用程序,它们在没有用户界面的情况下启动,...

    用Delphi创建windows服务程序

    ### 使用 Delphi 创建 Windows 服务程序 在 IT 领域中,Windows 服务是一种特殊类型的后台应用程序,它可以在没有用户交互的情况下运行。这类服务通常用于执行关键任务或长期运行的任务,例如数据库服务、网络服务...

    Delphi编写的自动升级程序

    本文将深入探讨一个使用Delphi编写的自动升级程序,它提供了灵活的升级策略,允许开发者通过脚本定制升级过程。 **Delphi编程语言** Delphi是一款基于Object Pascal的集成开发环境(IDE),以其高效、快速的编译器...

    用delphi7编写windows服务程序.doc

    "用 Delphi 7 编写 Windows 服务程序" Delphi 7 是一个功能强大且流行的集成开发环境(IDE),它可以用来编写 Windows 服务程序。 Windows 服务程序是一种特殊类型的应用程序,它可以在后台运行,提供一些特定的...

    delphi自动弹出式提示窗体

    在Delphi编程环境中,创建一个自动弹出式提示窗体是一项常见的需求,它可以为用户提供即时信息反馈,类似于QQ等即时通讯软件中的消息提示。要实现这样的功能,我们需要掌握以下几个核心知识点: 1. **窗体(Form)...

    delphi制作无窗体无界面的后台程序.zip

    服务程序可以独立于用户会话运行,适合用于后台监控、数据采集等任务。服务的安装和管理需要遵循特定的Windows API规则。 5. **实践步骤**:创建无窗体无界面的Delphi程序,可以按照以下步骤进行: - 新建一个...

    用Delphi编写的消息对话框的自动关闭

    总结一下,Delphi中实现消息对话框的自动关闭主要涉及自定义窗体、设计界面、添加定时器组件以及编写响应事件的代码。通过这种方法,我们可以提高用户体验,让程序在特定情况下更加流畅地运行。同时,自定义对话框也...

    Delphi写的守护进程(服务程序)

    总的来说,Delphi编写的服务程序结合了Delphi的强大编程能力与Windows服务的特性,实现了对指定程序的守护功能。这种技术在企业级应用中有着广泛的应用,确保了系统的稳定性和可靠性。通过深入理解Delphi的服务编程...

    Delphi 编写的软件自动升级程序实例

    以下是对Delphi编写的软件自动升级程序实例的详细解释。 首先,我们要理解自动升级的基本流程。一般来说,自动升级程序包括以下几个步骤: 1. **检测更新**:程序启动时或用户触发检查更新时,自动连接到服务器...

    delphi写的托盘窗体系统服务程序

    标题中的“delphi写的托盘窗体系统服务程序”指的是使用Delphi编程语言开发的一款应用程序,该程序设计为系统服务并具有托盘图标功能。在Windows操作系统中,系统服务是在后台运行的程序,它们通常在用户登录之前...

    Delphi编写的自动安装数据库程序..rar

    为了实现自动化,可以使用Delphi编写一个命令行版本的安装程序,接收参数来控制不同的安装选项。这使得程序能够在无人值守的情况下运行,例如作为服务器部署的一部分。 总结,Delphi在数据库自动化安装程序的开发中...

    Delphi自动根据窗体大小缩放控件

    "Delphi自动根据窗体大小缩放控件"这一主题就是解决这一问题的关键技术。 首先,我们要理解Delphi中的窗体(Form)和控件(Controls)的概念。窗体是应用程序的可视化界面,而控件如按钮、文本框等则是放置在窗体上...

    Delphi禁止系统或指定程序自动关闭/退出.rar

    标题中的"Delphi禁止系统或指定程序自动关闭/退出.rar"是一个使用Delphi编程语言编写的程序,其目的是阻止系统或者特定程序未经用户许可而自动关闭或退出。Delphi是Borland公司开发的一种集成开发环境(IDE),它...

    delphi嵌套应用程序窗体Demo

    在Delphi编程中,"嵌套应用程序窗体"是指在一个应用程序中嵌入另一个应用程序的界面,使其成为主程序的一部分。这种技术通常用于实现特定的功能整合或者定制化用户界面。本Demo以Delphi窗体嵌套系统自带的记事本为例...

    Delphi 封装窗体成DLL

    综上所述,"Delphi 封装窗体成 DLL" 主要是通过创建 DLL 工程,编写导出函数来显示和管理窗体,然后在主应用程序中调用这些函数,实现窗体的跨进程使用。这种方法可以有效地减少代码重复,提高软件的可维护性。通过...

    delphi windows服务程序 XE10可运行

    delphi windows服务程序 XE10可运行 Project2.dpr 可编译成普通程序 m33.dpr 可编译成服务程序 此程序展示如何将普通程序套在服务程序中,调试方便。 (管理员身份运行 CMD /install 安装 /uninstall 卸装)

    Delphi设计可自动关闭的对话框

    在Delphi编程环境中,设计一个可以自动关闭的对话框是一个常见的需求,这通常涉及到时间触发事件和用户交互逻辑。下面将详细讲解如何实现这一功能。 首先,我们需要了解对话框(Dialog)在Delphi中的基本概念。...

    delphi如何自动重启程序

    在Delphi编程环境中,有时我们需要实现程序的自动重启功能,比如在更新软件后为了加载新的代码而重新启动程序。这通常涉及到进程管理、错误处理和应用程序生命周期的控制。以下是一些关于如何在Delphi中实现自动重启...

    Delphi11.3FMX嵌套FMX窗体

    在Delphi 11.3中,FireMonkey (FMX) 是一个强大的跨平台UI框架,它允许开发者创建美观且功能丰富的应用程序,适用于多种操作系统,包括Windows、macOS、iOS和Android等。当我们谈论“FMX嵌套窗体”时,我们指的是在...

Global site tag (gtag.js) - Google Analytics