Heim > Backend-Entwicklung > C++ > Wie erhalte ich zuverlässig den Dateipfad eines Prozesses in C# und vermeide Win32Exceptions?

Wie erhalte ich zuverlässig den Dateipfad eines Prozesses in C# und vermeide Win32Exceptions?

Susan Sarandon
Freigeben: 2025-01-03 12:31:40
Original
646 Leute haben es durchsucht

How to Reliably Get a Process's File Path in C# and Avoid Win32Exceptions?

Win32-Ausnahme beim Zugriff auf Process.MainModule.FileName in C# vermeiden

In C# wird versucht, die FileName-Eigenschaft des MainModule eines Prozesses abzurufen kann gelegentlich eine Win32Exception auslösen, insbesondere bei der Arbeit mit 64-Bit-Plattformen. Um dieses Problem anzugehen, bietet die Lösung von Jeff Mercado einen zuverlässigen Ansatz.

Angepasster Code:

Um den Prozess zu vereinfachen, finden Sie hier eine Anpassung des Mercado-Codes, um den Dateipfad zu erhalten eines bestimmten Prozess:

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

Implementierung:

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

Diese Methode fragt die Windows Management Instrumentation (WMI) nach der ExecutablePath-Eigenschaft des Prozesses mit der angegebenen Prozess-ID ab . Wenn ein passender Prozess gefunden wird, wird dessen Dateipfad zurückgegeben. Andernfalls wird null zurückgegeben.

Das obige ist der detaillierte Inhalt vonWie erhalte ich zuverlässig den Dateipfad eines Prozesses in C# und vermeide Win32Exceptions?. 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