Delphi 2010
我有一个列表框,我填写了所有进程ID的列表。
function EnumProcess(hHwnd: HWND;lParam : integer): boolean; stdcall;
var
pPid : DWORD;
title, className : string;
begin
if(hHwnd=NULL) then
begin
result := false;
end
else
begin
GetWindowThreadProcessId(hHwnd,pPid);
SetLength(className, 255);
SetLength(className, GetClassName(hHwnd, PChar(className), Length(className)));
SetLength(title, 255);
SetLength(title, GetWindowText(hHwnd, PChar(title), Length(title)));
//form1.ListBox1.Items.Add('Class Name = ' + className + '; Title = ' + title + '; HWND = ' + IntToStr(hHwnd) + '; Pid = ' + IntToStr(pPid));
form1.ListBox1.Items.Add(IntToStr(pPid));
result := true;
end;
end;
有没有办法隐藏和显示PID?我需要一个Hide函数和一个可以处理的函数
function HidePID(Value: DWord): Boolean;
function ShowPID(Value: DWord): Boolean;
答案 0 :(得分:5)
没有受支持的方法可以从系统任务管理器隐藏进程。
答案 1 :(得分:2)
任务管理器会显示正在运行的“应用程序”。
例如,我的桌面现在只有5个“应用程序”,只有5个出现在任务管理器中:
任务管理器不会向您显示“后台应用程序”,“服务”,或其他人正在运行的应用程序。例如,现在我的登录会话也在运行:
您在任务管理器中没有看到这些程序的原因是因为没有与这些应用程序关联的可见窗口。你有答案:
要从任务管理器隐藏您的应用程序:请勿显示任何可见窗口。
注意:您无法隐藏进程;这样做会违反"Arms race between programs and users"