Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyoal Instrumentasi Pengurusan Windows (WMI) daripada Go Menggunakan COM?
Menyiasat WMI daripada Go Menggunakan COM
Dalam bidang pentadbiran Windows, menanya Windows Management Instrumentation (WMI) ialah tugas yang penting. Bagi mereka yang mencari cara untuk mencapai perkara ini dari dalam Go, penyelesaian berikut menyediakan pendekatan mudah menggunakan COM.
Mattn, penyumbang di GitHub, telah mencipta pembungkus mudah yang memudahkan proses. Menggunakan pembungkus ini bersama-sama pengendalian ralat yang diperlukan, berikut ialah program contoh:
import ( "github.com/mattn/go-ole" "github.com/mattn/go-ole/oleutil" ) func main() { // Initialize and later uninitialize COM ole.CoInitialize(0) defer ole.CoUninitialize() // Create WbemScripting.SWbemLocator object unknown, _ := oleutil.CreateObject("WbemScripting.SWbemLocator") defer unknown.Release() // Obtain SWbemServices object wmi, _ := unknown.QueryInterface(ole.IID_IDispatch) defer wmi.Release() serviceRaw, _ := oleutil.CallMethod(wmi, "ConnectServer") service := serviceRaw.ToIDispatch() defer service.Release() // Execute WMI query resultRaw, _ := oleutil.CallMethod(service, "ExecQuery", "SELECT * FROM Win32_Process") result := resultRaw.ToIDispatch() defer result.Release() // Gather process names countVar, _ := oleutil.GetProperty(result, "Count") count := int(countVar.Val) for i := 0; i < count; i++ { itemRaw, _ := oleutil.CallMethod(result, "ItemIndex", i) item := itemRaw.ToIDispatch() defer item.Release() asString, _ := oleutil.GetProperty(item, "Name") println(asString.ToString()) } }
Dalam kod ini, operasi kritikal ialah panggilan ke ExecQuery, yang mendapatkan semula data WMI yang dikehendaki. Sebagai contoh, kami mendapatkan semula nama proses yang sedang berjalan. Menjalankan program ini harus menghasilkan senarai proses aktif pada sistem anda.
Penyelesaian ini memanfaatkan kuasa COM, teknologi warisan dari awal pengaturcaraan berorientasikan objek dalam C. Walaupun ia mungkin bukan yang paling pendekatan moden, ia menyediakan cara yang stabil dan boleh dipercayai untuk berinteraksi dengan WMI daripada Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal Instrumentasi Pengurusan Windows (WMI) daripada Go Menggunakan COM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!