Maison >développement back-end >C++ >Comment éviter l'exception Win32 lors de l'obtention du chemin exécutable d'un processus ?
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);
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; }
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!