从任务管理器隐藏和显示进程

时间:2013-02-24 13:36:11

标签: delphi delphi-2010

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;

2 个答案:

答案 0 :(得分:5)

没有受支持的方法可以从系统任务管理器隐藏进程。

答案 1 :(得分:2)

任务管理器会显示正在运行的“应用程序”

例如,我的桌面现在只有5个“应用程序”,只有5个出现在任务管理器中:

enter image description here

任务管理器不会向您显示“后台应用程序”“服务”,或其他人正在运行的应用程序。例如,现在我的登录会话也在运行:

  • uTorrent的
  • 蒸汽
  • Process Explorer
  • 的Skype
  • SkyDrive中
  • 行动大纲

您在任务管理器中没有看到这些程序的原因是因为没有与这些应用程序关联的可见窗口。你有答案:

  

要从任务管理器隐藏您的应用程序:请勿显示任何可见窗口。

注意:您无法隐藏进程;这样做会违反"Arms race between programs and users"