Mon système Windows 7 est configuré pour verrouiller l'écran après 20 minutes d'inactivité (il s'agit d'une stratégie appliquée sur le lieu de travail; je ne peux pas modifier ce paramètre).
Lorsque j'utilise le clavier / la souris, Windows les traite comme des entrées utilisateur, et donc l'écran reste déverrouillé. Cependant, lorsque je joue à un jeu en utilisant uniquement un joystick, Windows considère cela comme aucune activité, et donc l'écran se verrouille après le délai d'expiration.
Existe-t-il un moyen d'empêcher le verrouillage de l'écran lors de l'utilisation de jeux basés sur un joystick?
Pour contourner ce problème, je suis en train de lire une vidéo aléatoire (en sourdine) en arrière-plan à l'aide de VLC, ce qui empêche le verrouillage de l'écran. Mais il devrait y avoir une meilleure façon de gérer ce problème ...
Je pourrais éventuellement écrire un script, qui simulerait certaines frappes comme {NUMLOCK}{NUMLOCK}
via sendkeys
. Cependant, il y a toujours la possibilité d'un effet secondaire involontaire, comme m'empêcher d'utiliser ces touches dans mes options de jeu.
la source
Réponses:
Chaque fois que vous appuyez sur une touche du clavier ou déplacez / cliquez sur la souris, Windows réinitialise sa minuterie inactive . Il existe une fonction API Windows que vous pouvez appeler qui réinitialise le temporisateur d'inactivité exactement de la même manière. En appelant la fonction à intervalles réguliers, l'économiseur d'écran ne s'activera jamais et l'ordinateur ne se verrouillera jamais. C'est ce que font VLC et d'autres applications.
Le nom de la fonction est
SetThreadExecutionState
et se trouve danskernel32.dll
. Dans VB, l'appel réel ressemble à ceci:SetThreadExecutionState(ES_SYSTEM_REQUIRED Or ES_DISPLAY_REQUIRED)
Les deux constantes étant:
ES_SYSTEM_REQUIRED = &H1
etES_DISPLAY_REQUIRED = &H2
Vous ne pouvez pas passer ces appels à partir de VBScript, vous aurez donc besoin de quelque chose de plus avancé pour coder cela.
Soit dit en passant , ce qui précède est la façon techniquement correcte de le faire. De nombreux utilitaires que j'ai vus sur le Web utilisent des astuces idiotes comme la simulation de frappes au clavier ou le déplacement de la souris. C'est mauvais à mon avis, car cela peut interférer avec votre travail.
Quoi qu'il en soit, j'ai trop digressé. Ce genre de choses appartient à Stack Overflow.
la source
Vous pouvez utiliser la
SetThreadExecutionState
fonction, fournie par le module ctypes de Python, dans le cadre d'une application Python autonome que vous pouvez exécuter en arrière-plan et quitter avec Ctrl + C. (Merci à la réponse de @ misha256 pour avoir expliqué l'utilisation de cette fonction!)J'ai construit ce script pour Windows. Visitez la page de publication de GitHub ici .
la source
0
être un espace réservé, la méthode standard estpass
.Il suffit d' exécuter un fichier nommé:
no_sleep.vbs
. Ce fichier texteno_sleep.vbs
doit contenir le texte ci-dessous.Veuillez google si vous ne savez pas comment créer un fichier texte vierge et renommer son extension.
La touche F13 ne doit pas interférer avec les options de jeu
la source