Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die Windows-Leerlaufzeit mit Go abrufen?

Wie kann ich die Windows-Leerlaufzeit mit Go abrufen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 13:45:02871Durchsuche

How to Retrieve Windows Idle Time Using Go?

Zugriff auf die Windows-Leerlaufzeit mit Go

Diese Anleitung bietet eine Lösung zum Abrufen der Leerlaufzeit eines Windows-Systems mit Golang.

Zugriff auf die Windows-API in Go

Um Windows-spezifische Systeminformationen abzurufen, ist die Verwendung des Syscall-Pakets erforderlich. Um auf die API zuzugreifen, müssen Sie godoc herunterladen und lokal ausführen:

go get golang.org/x/tools/cmd/godoc
godoc --http=:6060

Öffnen Sie dann http://127.0.0.1:6060/ in einem Webbrowser.

Informationen zur letzten Eingabe abrufen

Go verfügt nicht über eine direkte API für GetLastInputInfo(). Sie können es jedoch direkt aus der DLL aufrufen:

<code class="go">user32 := syscall.MustLoadDLL("user32.dll")
getLastInputInfo := user32.MustFindProc("GetLastInputInfo")</code>

Eine Struktur einrichten

Eine Struktur definieren, um den Rückgabewert zu speichern:

<code class="go">type LastInputInfo struct {
    cbSize uint32
    dwTime  uint32
}</code>

Initialisieren Sie das cbSize-Feld mit der Größe der Struktur:

<code class="go">var lastInputInfo LastInputInfo
lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo))</code>

GetLastInputInfo aufrufen

Übergeben Sie einen Zeiger auf die Struktur an die Funktion:

<code class="go">_, _, err := getLastInputInfo.Call(
    uintptr(unsafe.Pointer(&lastInputInfo))))
if err != nil {
    panic("error getting last input info: " + err.Error())
}</code>

Denken Sie daran, Syscall und Unsafe zu importieren.

Zusätzliche Tipps

  • Verwenden Sie Unicode-Versionen von API-Funktionen (z. B. W-Suffix) und UTF-16-Konvertierungsfunktionen in Syscall sorgen für optimale Ergebnisse.
  • Alle Argumente und Rückgabewerte für syscall.Call() sind uintptr.
  • Die Unterstrich-Rückgabe (_) wird unter Windows nicht verwendet.

Das obige ist der detaillierte Inhalt vonWie kann ich die Windows-Leerlaufzeit mit Go abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn