Je veux obtenir le pid de la deuxième instance d'un processus où cette seconde instance a le même nom de processus appelant. Comment ça?Comment obtenir pid d'un sous-processus créé avec le même nom de processus appelant?
Par exemple:
un exemple classique est Google Chrome (plusieurs instances avec le même nom "chrome.exe") voir ci-dessous.
J'ai utilisé ce code suivant, mais j'obtient pid seulement processus appelant:
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;
vous pouvez éditer votre réponse avec un exemple de code obtenant seulement la deuxième instance s'il vous plaît? Je vous remercie. – Saulo
Vous voulez juste la deuxième instance. Eh bien, ignorez le premier et revenez dans le deuxième match. Utilisez une variable pour compter. Savez-vous comment déclarer une variable entière? Savez-vous comment incrémenter un. Savez-vous comment tester si elle est égale à une valeur spécifique. –
Je me demande aussi si vous comprenez quelque chose sur le code existant. Si vous le faisiez, je m'attendrais à ce que vous soyez capable de le faire vous-même. Si vous ne le comprenez pas, vous nous demandez simplement de vous donner du code. Êtes-vous prêt à essayer d'apprendre quelque chose de nouveau? –