如何在Go 中取得Windows 空閒時間:綜合指南
在Go 中,取得Windows 系統的空閒時間可能看起來令人興奮畏懼。本文提供了詳細的解決方案,深入了解 Go 環境並利用 Windows API 來完成此任務。
透過導航 Go 網站並使用帶有「--http=:6060」標誌的 godoc 工具,正如答案所建議的,我們可以存取所有 Go 套件的綜合文件。
最重要的是 syscall 套件,它包含用於存取 DLL 的函數。雖然 Go 缺乏特定函數 GetLastInputInfo() 的 API,但可以直接從 DLL 呼叫它。
對於存取結構體,請確保所有欄位都宣告為 flat,並且所有 int 欄位都轉換為 int32確保在 64 位元 Windows 上的相容性。
下面的程式碼片段概述了使用GetLastInputInfo() 取得空閒時間的步驟:
<code class="go">import ( "syscall" "unsafe" ) // GetWindowsIdleTime retrieves the idle time of a Windows system func GetWindowsIdleTime() (idleTime uint32, err error) { // Load the user32 DLL and locate the GetLastInputInfo procedure user32, err := syscall.LoadDLL("user32.dll") if err != nil { return } getLastInputInfo, err := user32.FindProc("GetLastInputInfo") if err != nil { return } // Define the structure to receive the input information var lastInputInfo struct { cbSize uint32 dwTime uint32 } // Set the structure size lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo)) // Call the GetLastInputInfo function r1, _, err := getLastInputInfo.Call(uintptr(unsafe.Pointer(&lastInputInfo))) if r1 == 0 { err = fmt.Errorf("error getting last input info: %w", err) return } // Return the input idle time idleTime = lastInputInfo.dwTime return }</code>
利用這些技術,您可以有效地取得Windows 空閒時間使用Go 的時間,讓您能夠開發健壯且高效的應用程式。
以上是如何在 Go 中取得 Windows 空閒時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!