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 :
- Importez les packages "syscall" et "unsafe".
- Chargez la DLL user32 à l'aide de syscall.MustLoadDLL("user32.dll") .
- Obtenez l'adresse de la fonction GetLastInputInfo en utilisant user32.MustFindProc("GetLastInputInfo").
- Créez une structure avec la même disposition que la structure LastInputInfo, mais avec des champs int convertis en int32.
- Définissez le champ cbSize de la structure à sa taille en utilisant lastInputInfo.cbSize = uint32(unsafe.Sizeof(lastInputInfo)).
-
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
- 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!