1

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を非表示にして表示する方法はありますか?非表示にする関数と表示する関数、または両方を処理できる関数が必要です

function HidePID(Value: DWord): Boolean;

function ShowPID(Value: DWord): Boolean;
4

2 に答える 2

5

システムタスクマネージャからプロセスを非表示にするサポートされている方法はありません。

于 2013-02-24T15:23:51.000 に答える
2

タスクマネージャは、実行中の「アプリケーション」を表示します。

たとえば、現在、私のデスクトップには5つの「アプリケーション」しかなく、それらの5つだけがタスクマネージャーに表示されます。

ここに画像の説明を入力してください

タスクマネージャには、 「バックグラウンドアプリケーション」「サービス」、または他のユーザーによって実行されているアプリケーションは表示されません。たとえば、現在、ログインしているセッションも実行されています。

  • uTorrent
  • 蒸気
  • Process Explorer
  • Skype
  • スカイドライブ
  • アクション概要

タスクマネージャにこれらのプログラムが表示されない理由は、これらのアプリケーションに関連付けられたウィンドウが表示されていないためです。そしてあなたの答えがあります:

タスクマネージャからアプリケーションを非表示にするには:表示されているウィンドウを表示しないでください。

プロセスを非表示にすることはできません; そうすることは「プログラムとユーザーの間の軍拡競争」に違反するでしょう

于 2013-02-24T17:18:52.850 に答える