Maison > développement back-end > C++ > Comment déterminer la propriété des processus en C# à l'aide de WMI ?

Comment déterminer la propriété des processus en C# à l'aide de WMI ?

Patricia Arquette
Libérer: 2025-01-17 11:41:09
original
236 Les gens l'ont consulté

How to Determine Process Ownership in C# Using WMI?

Utiliser WMI pour identifier les propriétaires de processus dans les applications C#

Déterminer efficacement la propriété des processus est crucial pour diverses applications C#, en particulier celles axées sur la gestion et la sécurité des ressources système. Ce guide montre comment y parvenir à l'aide de la bibliothèque Windows Management Instrumentation (WMI).

Exploiter WMI pour la propriété des processus

WMI propose des outils robustes pour gérer et surveiller les composants du système, y compris les processus. Voici comment utiliser WMI pour identifier les propriétaires de processus :

1. Ajout de la référence System.Management.dll

Dans Visual Studio, accédez aux Références de votre projet dans l'Explorateur de solutions. Faites un clic droit, sélectionnez Ajouter une référence... et parcourez pour ajouter System.Management.dll.

2. Récupération du propriétaire du processus via l'ID du processus

L'extrait de code suivant récupère le propriétaire en fonction d'un ID de processus fourni :

<code class="language-csharp">public string GetProcessOwner(int processId)
{
    string query = $"Select * From Win32_Process Where ProcessID = {processId}";
    using (var searcher = new ManagementObjectSearcher(query))
    {
        using (var processList = searcher.Get())
        {
            foreach (ManagementObject obj in processList)
            {
                string[] argList = { string.Empty, string.Empty };
                int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
                if (returnVal == 0)
                {
                    return $"{argList[1]}\{argList[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
Copier après la connexion

3. Récupération du propriétaire du processus via le nom du processus

Cette méthode identifie le propriétaire à l'aide du nom du processus :

<code class="language-csharp">public string GetProcessOwner(string processName)
{
    string query = $"Select * from Win32_Process Where Name = \"{processName}\"";
    using (var searcher = new ManagementObjectSearcher(query))
    {
        using (var processList = searcher.Get())
        {
            foreach (ManagementObject obj in processList)
            {
                string[] argList = { string.Empty, string.Empty };
                int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
                if (returnVal == 0)
                {
                    return $"{argList[1]}\{argList[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
Copier après la connexion

Ces fonctions offrent un moyen simple d'obtenir des informations sur la propriété des processus, améliorant ainsi les capacités de gestion des processus de votre application C#. Notez l'utilisation des instructions using pour une bonne gestion des ressources.

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