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

Wie kann ich die Windows-Leerlaufzeit mit Go abrufen?

Linda Hamilton
Freigeben: 2024-11-03 13:45:02
Original
931 Leute haben es durchsucht

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
Nach dem Login kopieren

Ö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>
Nach dem Login kopieren

Eine Struktur einrichten

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

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

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

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

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage