Heim > Backend-Entwicklung > C++ > Wie vermeide ich Win32Exception beim Abrufen des ausführbaren Pfads eines Prozesses?

Wie vermeide ich Win32Exception beim Abrufen des ausführbaren Pfads eines Prozesses?

Barbara Streisand
Freigeben: 2024-12-28 01:09:10
Original
917 Leute haben es durchsucht

How to Avoid Win32Exception When Getting a Process's Executable Path?

Umgehen der Win32Exception beim Zugriff auf Process.MainModule.FileName

Beim Versuch, den Dateipfad zum Ausführen von Prozessen über Process.MainModule.FileName abzurufen , können einige Prozesse eine Win32Exception auslösen, da Prozessmodule nicht aufgelistet werden können. Um dieses Problem zu beheben, stellte Jeff Mercado eine alternative Methode bereit.

Der angepasste C#-Code:

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

Vollständige Funktionsimplementierung:

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

Dieser Ansatz nutzt Windows Management Instrumentation (WMI), um den spezifischen Prozess abzufragen und seinen ausführbaren Pfad abzurufen, ohne zu versuchen, auf seine Prozessmodule zuzugreifen. Dadurch wird der Fehler vermieden, der auftritt, wenn direkt auf die Eigenschaft Process.MainModule.FileName zugegriffen wird.

Das obige ist der detaillierte Inhalt vonWie vermeide ich Win32Exception beim Abrufen des ausführbaren Pfads eines Prozesses?. 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