熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

編寫後台監控軟件的技巧

2013-11-23 17:45:46  來源: Delphi編程 

  後台監控軟件為了達到隱蔽監控的目的應該滿足正常運行時不顯示在任務欄上在按Ctrl+Alt+Del出現的任務列表中也不顯示管理員可以通過熱鍵調出隱藏的運行界面要作到這些必須把當前進程變為一個系統服務並且定義全局熱鍵

  把當前進程變為一個系統服務

  目的是在任務列表中把程序隱藏起來調用API函數RegisterServiceProcess實現


  定義全局熱鍵(本例中定義熱鍵Ctrl+Del+R)

  
步驟

  定義捕獲Windows消息WM_HOTKEY的鉤子函數
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;

  向Windows加入一個全局原子 Myhotkey: GlobalAddAtom(MyHotkey) 並保留其句柄

  向Windows登記熱鍵調用API函數RegisterHotKey實現

  設計界面和源程序

unit Unit;
interface
uses
Windows Messages Forms Dialogs Classes Controls StdCtrls;
type
TForm = class(TForm)
Button: TButton;
Button: TButton;
procedure FormCreate(Sender: TObject);
procedure ButtonClick(Sender: TObject);
procedure ButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{熱鍵標識ID}
id: Integer;
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
{ PrivatDeclarations}
public
{ PublicDeclarations}
end;
var
Form : TForm;
implementation
const RSP_SIMPLE_SERVICE=;
function RegisterServiceProcess (dwProcessID dwType: DWord) : DWord; stdcall; external KERNELDLL;
{$R *DFM}

{捕獲熱鍵消息}
procedure TFormWMHotKey (var Msg : TWMHotKey);
begin
if msgHotKey = id then
ShowMessage(Ctrl+Alt+R鍵被按下!);
formVisible :=true;
end;

procedure TFormFormCreate(Sender: TObject);
Const
{ALTCTRL和R鍵的虛擬鍵值}
MOD_ALT = ;
MOD_CONTROL = ;
VK_R = ;
begin
{首先判斷程序是否已經運行}
if GlobalFindAtom(MyHotkey) = then
begin
{注冊全局熱鍵Ctrl + Alt + R}
id:=GlobalAddAtom(MyHotkey);
RegisterHotKey(handleidMOD_CONTROL+MOD_AltVK_R);
end
else
halt;
end;

{把當前進程變為一個系統服務從而在任務列表中把程序隱藏起來}
procedure TFormButtonClick(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessIDRSP_SIMPLE_SERVICE);
formHide;
end;

procedure TFormButtonClick(Sender: TObject);
begin
close;
end;
{退出時釋放全局熱鍵}
procedure TFormFormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(handleid);
GlobalDeleteAtom(id);
end;
end

  說明

  在後台監控軟件中使用以上功能可真正實現隱蔽運行熱鍵調出便於管理員進行管理程序在WinDelphi中運行通過


From:http://tw.wingwit.com/Article/program/Delphi/201311/25039.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.