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

Comment récupérer le temps d'inactivité de Windows à l'aide de syscall.Call() de Go ?

DDD
Libérer: 2024-11-03 08:41:02
original
1018 Les gens l'ont consulté

How to Retrieve Windows Idle Time Using Go's syscall.Call()?

Accès au temps d'inactivité de Windows avec la fonction syscall.Call() de Go

Dans Go, l'accès aux informations du système Windows telles que le temps d'inactivité nécessite l'utilisation du " syscall", qui donne accès aux fonctions DLL. Étant donné que la documentation Golang se concentre sur Linux, l'obtention du temps d'inactivité nécessite l'exécution de godoc localement.

Utiliser syscall.Call() pour récupérer le temps d'inactivité

Pour récupérer le temps d'inactivité via GetLastInputInfo(), suivez ces étapes :

  1. Importez les packages "syscall" et "unsafe".
  2. Chargez la DLL user32 à l'aide de syscall.MustLoadDLL("user32.dll") .
  3. Obtenez l'adresse de la fonction GetLastInputInfo en utilisant user32.MustFindProc("GetLastInputInfo").
  4. Créez une structure avec la même disposition que la structure LastInputInfo, mais avec des champs int convertis en int32.
  5. Définissez le champ cbSize de la structure à sa taille en utilisant lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo)).
  6. Appelez GetLastInputInfo avec un pointeur vers la structure :

    <code class="go">r1, _, err := getLastInputInfo.Call(
       uintptr(unsafe.Pointer(&lastInputInfo)))</code>
    Copier après la connexion
  7. Vérifiez la valeur de retour r1 pour le temps d'inactivité en millisecondes.

Remarques supplémentaires :

  • Appelez les fonctions ANSI et Unicode avec le suffixe Unicode (W) et utilisez les fonctions de conversion UTF-16 de syscall pour des résultats optimaux.
  • Comprenez que les arguments et les retours de syscall.Call() sont uintptr.
  • Respectez les exigences ABI en ignorant la valeur de retour _ 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal