如何实现不在WINDOWS任务栏和系统列表可见的监控程序?(100分)

  • 主题发起人 主题发起人 smartbug
  • 开始时间 开始时间
S

smartbug

Unregistered / Unconfirmed
GUEST, unregistred user!
; 小弟在编写一个监控程序,能够实现运行时不在任务栏上显示。但是,只要
按下热启动的三个键,这个程序就暴露了,当然也能够被强制结束。失去监控的
作用。 请各位大虾不啻吝教。
 
安装在注册表的runservice里
 
<a href="DispQ.asp?LID=248368">点这里!</a>
 
自动隐藏任务栏图标(TaskBar)
ShowWindow( Application.Handle, SW_HIDE );
SetWindowLong( Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
ShowWindow( Application.Handle, SW_SHOW );

讓使用者按下 Ctrl+Alt+Del 鍵時不會被顯示出來
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
隐藏:
RegisterServiceProcess(GetCurrentProcessID, 1);
复现:
RegisterServiceProcess(GetCurrentProcessID, 0);
 
; “但是,只要按下热启动的三个键,这个程序就暴露了,”

如果不让他有机会“按下热启动的三个键”不就解决总是了吗。

procedure TForm1.BitBtn1Click(Sender: TObject);
var
tmp:integer;
begin
tmp:=0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,@Tmp,0);
//屏蔽系统功能键Ctrl+Alt+Del
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
tmp:integer;
begin
tmp:=0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,@Tmp,0);
//恢复系统功能键Ctrl+Alt+Del
end;
 
阿黄同志的手段也太暴力了...
这样用户不就没办法用计算机了么...
 
; 手段也太暴力了...哈哈哈。

这种方法只适合对付一些极具破坏力的用户。
 
Victortim 的方法是正确的
但是RegisterServiceProcess
函数在Winnt/Windows2000下
不能用!!!
 
多人接受答案了。
 
后退
顶部