Mencari WMI daripada Go
Untuk melaksanakan pertanyaan WMI daripada Go, menggunakan panggilan DLL adalah boleh dilakukan. Walau bagaimanapun, menavigasi kerumitan API Windows berasaskan COM boleh menjadi menakutkan. Nasib baik, terdapat penyelesaian alternatif yang menyediakan pendekatan yang lebih mudah.
Satu penyelesaian yang disyorkan ialah memanfaatkan repositori GitHub oleh StackExchange/wmi. Pakej ini merangkumi teknik yang digariskan dalam jawapan yang diterima, menawarkan antara muka yang mudah untuk pertanyaan WMI.
Menggunakan Pakej StackExchange/wmi
Berikut ialah coretan kod yang menunjukkan cara untuk menggunakan pakej StackExchange/wmi:
package main import ( "context" "fmt" "log" "github.com/StackExchange/wmi" ) func main() { query := wmi.CreateQuery(&wmi.Query{ Namespace: "root\cimv2", Query: "SELECT * FROM Win32_Process", Projection: []string{"Caption", "ProcessId"}, }) processes, err := query.Execute(context.Background()) if err != nil { log.Fatal(err) } fmt.Printf("%-5s%-20v", "PID", "Name") fmt.Println() for _, p := range processes { fmt.Printf("%-5v%-20v\n", p.Properties["ProcessId"].Value.Value().(uint32), p.Properties["Caption"].Value.Value().(string)) } }
Contoh ini akan dapatkan maklumat tentang proses yang sedang berjalan, termasuk ID dan nama prosesnya. Pakej StackExchange/wmi mengendalikan kerumitan COM dan WMI, memudahkan proses pertanyaan untuk pembangun Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal WMI daripada Go dengan Mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!