Go에서 Windows 유휴 시간을 획득하는 방법: 종합 가이드
Go에서 Windows 시스템의 유휴 시간을 획득하는 것이 어려워 보일 수 있습니다. . 이 기사에서는 Go 환경에 대한 통찰력을 제공하고 이 작업에 Windows API를 활용하는 자세한 솔루션을 제공합니다.
Go 웹 사이트를 탐색하고 "--http=:6060" 플래그와 함께 godoc 도구를 사용하면, 답변에서 제안한 대로 모든 Go 패키지의 포괄적인 문서에 액세스할 수 있습니다.
가장 중요한 것은 DLL 액세스 기능을 포함하는 syscall 패키지입니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!