Maison > développement back-end > C++ > Comment éviter l'exception Win32 lors de l'obtention du chemin exécutable d'un processus ?

Comment éviter l'exception Win32 lors de l'obtention du chemin exécutable d'un processus ?

Barbara Streisand
Libérer: 2024-12-28 01:09:10
original
1017 Les gens l'ont consulté

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

Contournement de l'exception Win32 lors de l'accès à Process.MainModule.FileName

Lors de la tentative de récupération du chemin du fichier pour l'exécution de processus via Process.MainModule.FileName , certains processus peuvent générer une Win32Exception en raison de l'incapacité de répertorier les modules de processus. Pour résoudre ce problème, Jeff Mercado a proposé une méthode alternative.

Le code C# adapté :

string s = GetMainModuleFilepath(2011);
Copier après la connexion

Implémentation complète des fonctions :

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;
}
Copier après la connexion

Cette approche utilise Windows Management Instrumentation (WMI) pour interroger le processus spécifique et récupérer son chemin exécutable sans tenter d'accéder à ses modules de processus. Cela évite l'erreur rencontrée lors de l'accès direct à la propriété Process.MainModule.FileName.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal