Page 1 sur 1
[..] Empêcher l'allumage de l'écran
Posté : mar. 06 août 2013 16:05
par Rancar
Bonjour
Aujourd'hui, je cherche à éteindre mon écran et bloquer la souris afin de faire croire que l'ordinateur est éteint (Je sais, l'ordinateur fait du bruit, il y a un petit bouton lumineux qui indique le contraire mais c'est pas grave !

)
J'ai donc trouvé ceci sur le forum anglais (que j'ai un peu modifié afin d'obtenir ce que je voulais) :
► Afficher le texte
Code : Tout sélectionner
#include <BlockInputEx.au3>
HotKeySet("{TAB}", "Terminate")
_blockinputex(2)
_monitor_off()
While 1
Sleep(1000)
WEnd
Func terminate()
_monitor_on()
Exit
EndFunc
Func _monitor_on()
Global $lciwm_syscommand = 274
Global $lcisc_monitorpower = 61808
Global $lcipower_off = 2
Global $lcipower_on = -1
Global $monitorisoff = False
Local $progman_hwnd = WinGetHandle("[CLASS:Progman]")
DllCall("user32.dll", "int", "SendMessage", "hwnd", $progman_hwnd, "int", $lciwm_syscommand, "int", $lcisc_monitorpower, "int", $lcipower_on)
EndFunc
Func _monitor_off()
Global $lciwm_syscommand = 274
Global $lcisc_monitorpower = 61808
Global $lcipower_off = 2
Global $lcipower_on = -1
$monitorisoff = True
Local $progman_hwnd = WinGetHandle("[CLASS:Progman]")
While $monitorisoff = True
DllCall("user32.dll", "int", "SendMessage", "hwnd", $progman_hwnd, "int", $lciwm_syscommand, "int", $lcisc_monitorpower, "int", $lcipower_off)
Sleep(1)
WEnd
EndFunc
Mais, le problème est que lorsque je bouche la souris ou que j'appuie sur une touche du clavier, l'écran s'allume un court instant puis s'éteint. Le BlockInputEx ne change rien à cela étant donné que la souris reste au même endroit.
Je voudrais, si c'est possible, que même si l'on bouge la souris ou que l'on appuie sur une touche, l'écran reste éteint
Merci pour votre aide
Rancar.
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 10:44
par DimVar
Bonjour,
Afficher une GUi noire, de la taille de l'ecran.
Cdlt.
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 11:37
par mikell
Oui, qqe chose dans ce genre
► Afficher le texte
Code : Tout sélectionner
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
HotKeySet("{esc}", "_Exit")
$gui = GUICreate("Ma GUI", @desktopWidth, @desktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST )
GUISetBkColor(0x000000)
GUISetCursor(16)
GUISetState()
While 1
_WinAPI_SetWindowPos($gui, $HWND_TOP , 0 , 0, @desktopWidth, @desktopHeight, $SWP_NOMOVE)
Sleep(100)
WEnd
Func _Exit()
Exit
EndFunc
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 14:12
par sylvanie
Sinon, on peut réeelement éteindre l'écran, cf l'exemple du fichier d'aide pour la fonction _SendMessage
► Afficher le texte
Code : Tout sélectionner
#include <SendMessage.au3>
_Main()
Func _Main()
Local Const $Off = 2, $On = -1
Opt("WinTitleMatchMode", 4)
Local $hwnd = WinGetHandle('classname=Progman')
_ToggleMonitor($hwnd, $Off)
Sleep(3000)
_ToggleMonitor($hwnd, $On)
EndFunc ;==>_Main
Func _ToggleMonitor($hwnd, $OnOff)
Local Const $WM_SYSCOMMAND = 274
Local Const $SC_MONITORPOWER = 61808
_SendMessage($hwnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
If @error Then
MsgBox(0, "_ToggleMonitor", "_SendMessage Error: " & @error)
Exit
EndIf
EndFunc ;==>_ToggleMonitor
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 16:10
par Rancar
J'ai aussi pensé à créé une GUI qui occupe tout l'écran mais ce n'est pas du tout pratique et j'aimerais, si possible passé par une autre solution
Sylvanie, je viens d'essayer votre script mais il ne fonctionne pas vraiment comme je veux car dès que je bouge la souris, l'écran s'allume.
Je vais continuer à creuser sur le Forum anglais

Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 19:51
par ani
Sujet traitée
une mini recherche sur le forum vous aurez amené a l'exemple de MCLAVEAU ([Ex] Extinction écran) et en fin de page une fonction supplementaire soumis par tim.
Lit tout le poste avant

surtout ma partie
http://www.autoitscript.fr/forum/viewto ... =675#p9061
et si tu ne comprend pas, on t'expliquera :)d
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 20:32
par Rancar
J'ai tout lu et cela ne change pas grand chose à mon script. J'avais déjà testé le script de Timmalos (que j'avais trouvé sur le forum anglais) mais toujours le même problème...
L'écran s'allume un court instant puis s'éteint à nouveau. Il faudrait qu'il reste éteint, quoi qu'il se passe ! (Sauf HotKeySet que je définirais après).
C'est ça le plus compliqué je pense :S
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 20:38
par ani
Ta bien testé le dernier code ? celui de timmalos ou il faut appuier sur F11 pour eteindre et F10 pour rallumer ?
je viend de tester (xp service3 (32bit))
T sous quel systeme ?
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 20:40
par Rancar
Oui j'ai bien essayé celui-là et lorsque je bouge la souris ou que j'appuie sur une touche, l'écran s'allume (pas plus de 2 secondes) et puis s'éteint à nouveau.
Je suis sous W7 Pro SP1 x64
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 21:26
par mikell
Y aurait pas un bazar à modifier dans la configuration de l'écran de veille (sortie de veille) ?
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 21:34
par Rancar
J'ai déjà été voir et je n'ai rien trouvé. De plus, mon ordinateur ne se met jamais en veille ^^
Re: [..] Empêcher l'allumage de l'écran
Posté : mer. 07 août 2013 21:48
par mikell
Et façon barbare, en mettant l'instruction dans une boucle while ?
► Afficher le texte
Code : Tout sélectionner
#include <SendMessage.au3>
Opt("WinTitleMatchMode", 4)
HotKeySet("{ESC}", "_On")
Global Const $Off = 2, $On = -1
Global $var = true
Global $hwnd = WinGetHandle('classname=Progman')
While $var = true
_ToggleMonitor($hwnd, $Off)
Wend
_ToggleMonitor($hwnd, $On)
Func _ToggleMonitor($hwnd, $OnOff)
Local Const $WM_SYSCOMMAND = 274
Local Const $SC_MONITORPOWER = 61808
_SendMessage($hwnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
EndFunc ;==>_ToggleMonitor
Func _On()
$var = false
EndFunc
Re: [..] Empêcher l'allumage de l'écran
Posté : jeu. 08 août 2013 01:04
par Rancar
Je viens d'essayer votre script mais toujours le même problème =/
Lorsque je bouge la souris, l'écran s'allume un court instant =/
BlockInPut ne fonctionne pas non plus...
Re: [..] Empêcher l'allumage de l'écran
Posté : jeu. 08 août 2013 11:13
par ani
c' juste un probleme entre le 32 et 64 bit
l'un utilise le gettickcount et l'autre gettickcount64
Mais la souris et clavié ne sont pas deconnecté (sont tjrs actif)
Le script gere juste le temp de la mise "en veille"
Ici on retrouve le script proposé par timmalos.
http://www.autoitscript.com/forum/topic ... f-example/
ou utilise la proposition d'une GUI en NOIR
déjà j'aurai mi des uint dans le lasinput, et un bool dans l'appel a la fonction au lieu du int
Je ne dispose pas de process/systeme en 64bit. (peut pas tester).
bon courage
Re: [..] Empêcher l'allumage de l'écran
Posté : jeu. 08 août 2013 16:19
par Rancar
Je n'aime pas trop l'idée de la GUI noire étant donné que j'ai d'autres programmes qui sont au premier plan et TOPMOST ne change rien à cela ^^ Je ne veux pas non plus cacher ces programmes
Je pense avoir trouver une solution pour ce qui est de la souris (du TouchPad), j'ai testé et cela fonctionne. Il "suffit" de désactiver Synaptic dans le Panneau de Configuration (Panneau de configuration\Matériel et audio\Souris\Réglages du dispositif\Désactiver).
Mais comment arriver jusque là en AutoIT ?
En attendant, je cherche toujours à désactiver le clavier ^^
EDIT :
J'ai trouvé pour désactiver et activer le TouchPad !

Je ne sais pas si ça fonctionnera sur tout les ordinateurs, mais ça fonctionne sur le mien en tout cas ^^
Pour désactiver :
► Afficher le texte
Code : Tout sélectionner
Run("control.exe main.cpl,")
WinWait("Propriétés de : Souris")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
Sleep(2000)
ControlClick("Propriétés de : Souris","",1311)
Sleep(1000)
ControlClick("Avertissement","",1)
Winclose("Propriétés de : Souris","")
Pour activer :
► Afficher le texte
Code : Tout sélectionner
Run("control.exe main.cpl,")
WinWait("Propriétés de : Souris")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
ControlCommand("Propriétés de : Souris","","SysTabControl321","TabRight","")
Sleep(2000)
ControlClick("Propriétés de : Souris","",1313)
Sleep(1000)
ControlClick("Avertissement","",1)
Winclose("Propriétés de : Souris","")
Il ne me reste plus qu'à trouver le moyen de désactiver le clavier
