c # - Windows-proces forlade forælder. Hvordan får man fat i dem?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skrev et program lancering og overvågning og generelt styre andre programmer. I almindelighed udarbejder jeg en System.Diagnostics.ProcessStartInfo og påberåber Process.Start. Senere starter jeg en tråd pr. Program, der kontrollerer periodisk den resulterende Process objekt.


Til testprøver har jeg konfigureret mit program på min Win 7-maskine til at starte og overvåge nogle typiske Windows-værktøjer: Notesblok, Maling og Regnemaskinen. At alt fungerede fint.


På en Windows 10-maskine opfører computeren sig anderledes. Processen startet af Process.Start afsluttes med det samme, og der er ikke noget calc.exe-barn til min launcher, men et win32calc.exe barn til explorer.exe. barn til en ikke eksisterende proces, processen min launcher oprettet. Se skærmbilledet for procesforskere her. [4]


Hvorfor det? Hvordan får jeg et håndtag til det? Hvad ville være en strategi for at overvåge programmer startet af min launcher, selvom de vælger at opgive deres forælder?

Bedste reference


Et svar svar:


calc.exe lancerer aktuall processen og dræber derefter selv. Procesgrupper kunne håndtere dette: Jeg kunne oprette en procesgruppe og overvåge det.


Men det var kun en test, og jeg overvåger kun programmer, der ikke gør det, jeg vandt ikke.