Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Pemilikan Proses dalam C# Menggunakan WMI?
Menggunakan WMI untuk Mengenalpasti Pemilik Proses dalam Aplikasi C#
Menentukan pemilikan proses dengan cekap adalah penting untuk pelbagai aplikasi C#, terutamanya yang tertumpu pada pengurusan sumber sistem dan keselamatan. Panduan ini menunjukkan cara untuk mencapainya menggunakan pustaka Instrumentasi Pengurusan Windows (WMI).
Memanfaatkan WMI untuk Pemilikan Proses
WMI menawarkan alat yang mantap untuk mengurus dan memantau komponen sistem, termasuk proses. Begini cara menggunakan WMI untuk mengenal pasti pemilik proses:
1. Menambah Rujukan System.Management.dll
Dalam Visual Studio, navigasi ke Rujukan projek anda dalam Solution Explorer. Klik kanan, pilih Tambah Rujukan... dan semak imbas untuk menambah System.Management.dll.
2. Mendapatkan semula Pemilik Proses melalui ID Proses
Coretan kod berikut mendapatkan semula pemilik berdasarkan ID proses yang diberikan:
<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>
3. Mendapatkan semula Pemilik Proses melalui Nama Proses
Kaedah ini mengenal pasti pemilik menggunakan nama proses:
<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>
Fungsi ini menyediakan cara yang mudah untuk mendapatkan maklumat pemilikan proses, meningkatkan keupayaan pengurusan proses aplikasi C# anda. Perhatikan penggunaan using
pernyataan untuk pengurusan sumber yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pemilikan Proses dalam C# Menggunakan WMI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!