プロセスの実行ファイル名を列挙する
|
Tipsの別項、[Win95/98で、ウィンドゥハンドルから、実行アプリ名を知る]および、[WinNTで、ウィンドゥハンドルから、実行アプリ名を知る]の例にある
EnumProcesses95、EnumProcessesNTを使えば
汎用関数のようなものができます。
同名の関数がありますので、OverrLoad指定を忘れないで下さい。
procedure EnumProcesses(lpEnumFunc: TEnumProcs; lParam: longint);overload
begin
case Win32Platform of
VER_PLATFORM_WIN32_NT: EnumProcessesNT(lpEnumFunc, lParam);
VER_PLATFORM_WIN32_WINDOWS: EnumProcesses95(lpEnumFunc, lParam);
else
raise Exception.Create('未対応のOSかバージョンです。');
end;
end;
// 以下の例は、リストボックスに列挙しています。
function CallBackTest(ID: DWord; Str: PChar; LP: LParam):bool;stdcall;
begin
TListBox(LP).Items.Addobject(Str,Pointer(ID));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
EnumProcesses(@CallBackTest,Longint(ListBox1));
end;
|
|