Ich entwickle Konsolenanwendung in .NET und ich möchte ein Verhalten ein wenig basierend auf Informationen ändern, die Anwendung von cmd.exe oder explorer.exe gestartet wurde. Ist es möglich?
Die Funktion CreateToolhelp32Snapshot verfügt über eine Process32First-Methode, mit der Sie das tun können Lesen Sie eine PROCESSENTRY32-Struktur . Die Struktur hat eine Eigenschaft, die Ihnen die gewünschten Informationen liefert:
th32ParentProcessID - Der Bezeichner des Prozesses, der das geschaffen hat Prozess (sein übergeordneter Prozess).
Dieser Artikel wird Ihnen helfen, die ToolHelpSnapshot-Funktion zu verwenden:
Ein Problem bei den ToolHelp / ManagementObject-Ansätzen besteht darin, dass der übergeordnete Prozess möglicherweise schon beendet wurde.
Die GetStartupInfo Win32-Funktion (verwenden Sie PInvoke, wenn es keine .NET-Entsprechung gibt) füllt eine Struktur aus, die den Fenstertitel enthält. Für eine Win32-Konsolenanwendung "app.exe" lautet diese Titelzeichenfolge "app", wenn sie von cmd gestartet wird, und "c: \ full \ path \ to \ app.exe", wenn sie vom Explorer (oder dem VS-Debugger) gestartet wird. p>
Natürlich ist das ein Hack (Änderungen in anderen Versionen vorbehalten).
%Vor%Tags und Links .net windows process-management