在Delphi中隐藏程序进程的方法.docVIP

  • 14
  • 0
  • 约1.75万字
  • 约 22页
  • 2018-04-23 发布于河南
  • 举报
在Delphi中隐藏程序进程的方法

在Delphi中隐藏程序进程方法[1] 主要需要解决两个问题,即隐藏窗口和设定热键。 一. 隐藏窗口 通过API函数GETACTIVEWINDOW获取当前窗口;函数ShowWindow(HWND,nCmdShow)的参数nCmdShow取SW_HIDE时将之隐藏,取SW_SHOW时将之显示。例如:showwindow(getactivewindow,sw_hide)。隐藏好窗体后,须记住窗体句柄以便恢复。 二. 键盘监控 为了实现键盘监控须用到钩子。 以下是程序的源文件: 一、创建一个动态链接库 unit HKHide; //链接库中的Unit文件 interface uses ?? Windows, Messages, sysutils; var ?? hNextHookHide: HHook; ?? HideSaveExit: Pointer; ?? hbefore:longint; function KeyboardHookHandler(iCode: Integer;wParam: WPARAM; ?? ?? lParam: LPARAM): LRESULT; stdcall; export; function EnableHideHook: BOOL; export; function DisableHideHook: BOOL; export; procedure HideHookExit; far; implementation function KeyboardHookHandler(iCode: Integer;wParam: WPARAM; ?? ?? lParam: LPARAM): LRESULT; stdcall; export; const _KeyPressMask = var ?? f:textfile; ?? temp:string; begin ?? Result := 0; ?? If iCode 0 Then ?? begin Result := CallNextHookEx(hNextHookHide, iCode, wParam, lParam); Exit; ?? end; ?? //侦测 Ctrl + Alt + F12 组合键 ?? if ((lParam and _KeyPressMask) = 0)?? //按下时生效 ??? and (GetKeyState(vk_Control) 0) ??? and (getkeystate(vk_menu)0) ??? and (wParam = vk_F12) then ?? begin Result := 1; //文件不存在则创建 if not fileexists(c:\test.txt) then begin ?? assignfile(f,c:\test.txt); ?? rewrite(f); ?? writeln(f,0); ?? closefile(f); end else begin ?? assignfile(f,c:\test.txt); ?? reset(f); ?? readln(f,temp); ?? hbefore:=strtoint(temp); ?? begin ?? ??? hbefore:=getactivewindow; ?? ??? temp:=inttostr(hbefore); ?? ??? rewrite(f); ?? ??? writeln(f,temp); ?? ??? closefile(f); ?? ??? ShowWindow(hbefore, SW_HIDE); ?? end; end; //end if FileExists() ?? end ?? else begin showwindow(hbefore,SW_SHOW); rewrite(f); writeln(f,0); closefile(f); ?? end;//end if Ctrl+Alt+F12按键 end; function EnableHideHook: BOOL; export; begin ?? Result := False; ?? if hNextHookHide 0 then Exit; ?? // 挂上 WH_KEYBOARD 这型的 HOOK, 同时, 传回值必须保留下 ?? // 来, 免得 HOOK 呼叫链结断掉 ?? hNextHookHide := SetWindowsHookEx(WH_KEYBOARD, ?? KeyboardHookHandler,HInstance,0); ?? Result := hNextHookHid

文档评论(0)

1亿VIP精品文档

相关文档