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
你只需要第二个实例。那么,先忽略第一场,然后回到第二场比赛。使用一个变量进行计数。你知道如何声明一个整型变量吗?你知道如何增加一个。你知道如何测试它是否等于一个特定的值。 –
我也想知道你是否了解现有的代码。如果你做到了,那么我希望你自己能够做到这一点。如果你不理解它,那么你只是要求我们给你喂码。你准备尝试学习新东西吗? –