0
我想要獲得第二個實例的第二個實例的pid,其中第二個實例具有調用進程的相同名稱。這是怎麼回事?如何獲得使用相同名稱的調用進程創建的子進程的pid?
如:
一個經典的例子是谷歌瀏覽器(使用相同的名稱「的chrome.exe」幾個實例)見下文。
我已經使用這個代碼之後,但我是越來越唯一的pid調用進程的:
Function ProcessIDFromAppname32(appname: String): DWORD;
Var
snapshot: THandle;
processEntry : TProcessEntry32;
Begin
Result := 0;
appName := UpperCase(appname);
snapshot := CreateToolhelp32Snapshot(
TH32CS_SNAPPROCESS,
0);
If snapshot <> 0 Then
try
processEntry.dwSize := Sizeof(processEntry);
If Process32First(snapshot, processEntry) Then
Repeat
If Pos(appname,
UpperCase(ExtractFilename(
StrPas(processEntry.szExeFile)))) > 0
Then Begin
Result:= processEntry.th32ProcessID;
Break;
End;
Until not Process32Next(snapshot, processEntry);
finally
CloseHandle(snapshot);
End;
End;
你可以編輯你的答案,只需要獲得第二個實例的代碼示例?謝謝。 – Saulo
你只需要第二個實例。那麼,先忽略第一場,然後回到第二場比賽。使用一個變量進行計數。你知道如何聲明一個整型變量嗎?你知道如何增加一個。你知道如何測試它是否等於一個特定的值。 –
我也想知道你是否瞭解現有的代碼。如果你做到了,那麼我希望你自己能夠做到這一點。如果你不理解它,那麼你只是要求我們給你喂碼。你準備嘗試學習新東西嗎? –