1

德尔福 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?我需要一个隐藏功能和一个显示功能或一个可以同时处理两者的功能

function HidePID(Value: DWord): Boolean;

function ShowPID(Value: DWord): Boolean;
4

2 回答 2

5

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

于 2013-02-24T15:23:51.000 回答
2

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

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

在此处输入图像描述

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

  • uTorrent
  • 蒸汽
  • 进程浏览器
  • Skype
  • 空中驱动器
  • 行动纲要

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

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

注意:你不能隐藏你的进程;这样做会违反“程序和用户之间的军备竞赛”

于 2013-02-24T17:18:52.850 回答