0
私は、この2番目のインスタンスが呼び出しプロセスの名前が同じであるプロセスの2番目のインスタンスのpidを取得したいと思います。これはどうですか?呼び出し元プロセスと同じ名前で作成されたサブプロセスのPIDを取得するにはどうすればよいですか?
例:
古典的な例は、Google Chromeのである(同じ名前 "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;
2番目のインスタンスのみを取得するコード例を使用して回答を編集できますか?ありがとうございました。 – Saulo
2番目のインスタンスが必要です。さて、最初のものを無視し、2回目の試合に戻ります。カウントするには変数を使用します。整数変数を宣言する方法を知っていますか?それを増やす方法を知っていますか?それが特定の値と等しいかどうかをテストする方法を知っていますか? –
私は、既存のコードについて何かを理解しているのだろうかと思います。あなたがした場合、私はあなたがこれを自分で行うことができると期待しています。あなたがそれを理解していなければ、コードをスプーンでフィードするように頼んでいるだけです。あなたは新しい何かを学ぼうとする準備ができていますか? –