Maison > développement back-end > Golang > Comment récupérer le temps d'inactivité de Windows à l'aide de Go ?

Comment récupérer le temps d'inactivité de Windows à l'aide de Go ?

Linda Hamilton
Libérer: 2024-11-03 13:45:02
original
918 Les gens l'ont consulté

How to Retrieve Windows Idle Time Using Go?

Accès au temps d'inactivité de Windows avec Go

Ce guide fournit une solution pour récupérer le temps d'inactivité d'un système Windows à l'aide de Golang.

Accéder à l'API Windows dans Go

Obtenir des informations système spécifiques à Windows nécessite l'utilisation du package syscall. Pour accéder à l'API, vous devrez obtenir godoc et l'exécuter localement :

go get golang.org/x/tools/cmd/godoc
godoc --http=:6060
Copier après la connexion

Ensuite, ouvrez http://127.0.0.1:6060/ dans un navigateur Web.

Obtenir les dernières informations d'entrée

Go n'a pas d'API directe pour GetLastInputInfo(). Cependant, vous pouvez l'appeler directement depuis la DLL :

<code class="go">user32 := syscall.MustLoadDLL("user32.dll")
getLastInputInfo := user32.MustFindProc("GetLastInputInfo")</code>
Copier après la connexion

Configurer une structure

Définir une structure pour contenir la valeur de retour :

<code class="go">type LastInputInfo struct {
    cbSize uint32
    dwTime  uint32
}</code>
Copier après la connexion

Initialisez le champ cbSize avec la taille de la structure :

<code class="go">var lastInputInfo LastInputInfo
lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo))</code>
Copier après la connexion

Appel de GetLastInputInfo

Passez un pointeur vers la structure à la fonction :

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

N'oubliez pas d'importer les appels système et non sécurisés.

Conseils supplémentaires

  • Utilisez les versions Unicode des fonctions API (par exemple, le suffixe W) et Fonctions de conversion UTF-16 dans syscall pour des résultats optimaux.
  • Tous les arguments et valeurs de retour pour syscall.Call() sont uintptr.
  • Le retour de trait de soulignement (_) n'est pas utilisé sous Windows.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal