Maison > développement back-end > C++ > Comment accéder à Process.MainModule.FileName sans exception Win32 ?

Comment accéder à Process.MainModule.FileName sans exception Win32 ?

Barbara Streisand
Libérer: 2024-12-31 21:14:15
original
572 Les gens l'ont consulté

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

Accès à Process.MainModule.FileName sans exception Win32

Lors de la récupération du chemin d'accès aux processus en cours d'exécution à l'aide de la méthode Process.GetProcessById, vous pouvez rencontrez une Win32Exception qui vous empêche d’accéder à la propriété MainModule.FileName. Cette exception se produit lorsque vous tentez de récupérer des informations de module à partir de certains processus.

Solution :

Pour contourner ce problème, vous pouvez utiliser une méthode décrite par Jeff Mercado. Le code suivant montre comment obtenir le chemin de fichier complet d'un processus spécifique :

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

Voici l'implémentation de la méthode GetMainModuleFilepath :

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

En tirant parti de Windows Management Instrumentation (WMI) , vous pouvez interroger les informations sur le processus et extraire le chemin de l'exécutable sans déclencher l'exception Win32.

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!

source:php.cn
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