Delphi编写后台监控软件


   后盾监控软件,为了达到 隐秘监控的 目标,应该满足 畸形运行时,不显示在 使命栏上,在按Ctrl+Alt+Del浮现的 使命列表中也不显示,治理员 可以通过热键调出 潜藏的运行界面 。要作到这些,必须把目前 历程变为一个系统服务,而且定义全局热键 。

  一、把目前 历程变为一个系统服务:

   目标是在 使命列表中把程序 潜藏起来 。调用API函数RegisterServiceProcess实现 。

  二、定义全局热键(本例中定义热键Ctrl+Del+R),步骤:

  1、定义 拿获Windows 信息WM_HOTKEY的钩子函数,即:procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;

  2、向Windows加入一个全局原子 Myhotkey: GlobalAddAtom(’MyHotkey’), 并保留其句柄 。

  3、向Windows 注销热键:调用API函数RegisterHotKey实现 。

  三、源程序:

unit Unit1;

interface

uses

Windows, Messages, Forms, Dialogs, Classes, Controls, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{热键标识ID}

id: Integer;

procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;

{ Privat-Declarations}

public

{ Public-Declarations}

end;

var

Form1 : TForm1;

implementation

const RSP_SIMPLE_SERVICE=1;

function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external ’KERNEL32.DLL’;

{$R *.DFM}

{ 拿获热键 信息}

procedure TForm1.WMHotKey (var Msg : TWMHotKey);

begin

if msg.HotKey = id then

ShowMessage(’Ctrl+Alt+R键被按下!’);

form1.Visible :=true;

end;

procedure TForm1.FormCreate(Sender: TObject);

Const

{ALT、CTRL和R键的 虚构键值}

MOD_ALT = 1;

MOD_CONTROL = 2;

VK_R = 82;

begin

{首先推断程序是不是已经运行}

if GlobalFindAtom(’MyHotkey’) = 0 then

begin

{注册全局热键Ctrl + Alt + R}

id:=GlobalAddAtom(’MyHotkey’);

RegisterHotKey(handle,id,MOD_CONTROL+MOD_Alt,VK_R);

end

else

halt;

end;

  {把目前 历程变为一个系统服务,从而在 使命列表中把程序 潜藏起来}

procedure TForm1.Button1Click(Sender: TObject);

begin

RegisterServiceProcess(GetCurrentProcessID,RSP_SIMPLE_SERVICE);

form1.Hide;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

{退出时 开释全局热键}

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

UnRegisterHotKey(handle,id);

GlobalDeleteAtom(id);

end;

 

 

end.

  四、 注明:

  在 后盾监控软件中 使用以上 性能,可真正实现 隐秘运行,热键调出,便于治理员进行治理 。程序在Win98,Delphi5.0中运行通过 。