Heim > Backend-Entwicklung > C++ > Wie greife ich ohne Win32Exception auf Process.MainModule.FileName zu?

Wie greife ich ohne Win32Exception auf Process.MainModule.FileName zu?

Barbara Streisand
Freigeben: 2024-12-31 21:14:15
Original
586 Leute haben es durchsucht

How to Access Process.MainModule.FileName Without a Win32Exception?

Zugriff auf Process.MainModule.FileName ohne Win32-Ausnahme

Beim Abrufen des Pfads zu laufenden Prozessen mithilfe der Process.GetProcessById-Methode können Sie dies tun Es kommt zu einer Win32Exception, die Sie daran hindert, auf die Eigenschaft MainModule.FileName zuzugreifen. Diese Ausnahme tritt auf, wenn versucht wird, Modulinformationen aus bestimmten Prozessen abzurufen.

Lösung:

Um dieses Problem zu umgehen, können Sie eine von Jeff Mercado beschriebene Methode anwenden. Der folgende Code zeigt, wie man den vollständigen Dateipfad eines bestimmten Prozesses erhält:

string s = GetMainModuleFilepath(2011);
Nach dem Login kopieren

Hier ist die Implementierung der GetMainModuleFilepath-Methode:

private string GetMainModuleFilepath(int processId)
{
    string wmiQueryString = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE ProcessId = " + processId;
    using (var searcher = new ManagementObjectSearcher(wmiQueryString))
    {
        using (var results = searcher.Get())
        {
            ManagementObject mo = results.Cast<ManagementObject>().FirstOrDefault();
            if (mo != null)
            {
                return (string)mo["ExecutablePath"];
            }
        }
    }
    return null;
}
Nach dem Login kopieren

Durch Nutzung der Windows Management Instrumentation (WMI) können Sie Prozessinformationen abfragen und den ausführbaren Pfad extrahieren, ohne die Win32Exception auszulösen.

Das obige ist der detaillierte Inhalt vonWie greife ich ohne Win32Exception auf Process.MainModule.FileName zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage