Aide et conseils concernant AutoIt et ses outils.
Utilisateur 4989 supprimé
Status :
Hors ligne
#1
Message
par Utilisateur 4989 supprimé » dim. 03 mars 2013 14:20
Bonjour,
j'ai un ordi qui n'a pas de diode pour la touche majuscule. Du coup, je ne sais pas quand elle est activée ou pas.
J'ai alors créé ce code pour afficher une infobulle quand la majuscule est activée, mais dès fois ça ne marche pas bien (l'infobulle n'apparaît pas quand la majuscule est activée et inversement) :
► Afficher le texte
Code : Tout sélectionner
#NoTrayIcon
#include <File.au3>
Opt("TrayMenuMode", 1)
Global $adresse = "....."
If FileExists($adresse & "Test\Maj.txt") Then
Maj_on()
EndIf
While 1
If _IsPressed("14") And FileExists($adresse & "Test\Maj.txt") = 0 Then
Maj_on()
While _IsPressed("14")
Sleep(1)
WEnd
EndIf
If _IsPressed("14") And FileExists($adresse & "Test\Maj.txt") Then
Maj_off()
While _IsPressed("14")
Sleep(1)
WEnd
EndIf
WEnd
DllClose("user32.dll")
Else
Exit
EndIf
EndIf
Func Maj_on()
_FileCreate($adresse & "Test\Maj.txt")
TraySetIcon("C:\Windows\System32\credwiz.exe")
TrayTip("", "Majuscule activée", 0)
TraySetToolTip("Majuscule activée")
TraySetState()
EndFunc
Func Maj_off()
FileDelete($adresse & "Test\Maj.txt")
Opt("TrayIconHide", 1)
EndFunc
Func _IsPressed($sHexKey, $vDLL = 'user32.dll')
Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($a_R[0], 0x8000) <> 0
EndFunc
Comment faire pour que ça marche mieux ?
Merci d'avance.
Modifié en dernier par Utilisateur 4989 supprimé le dim. 03 mars 2013 15:52, modifié 1 fois.
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#2
Message
par mikell » dim. 03 mars 2013 15:24
Voilà, reste à adapter
► Afficher le texte
Code : Tout sélectionner
AdlibRegister("_TestMaj", 100)
While 1
Sleep(10)
Wend
Func _TestMaj()
Local Static $status0
Local $status = _IsToggled("14")
If $status<>$status0 Then
If $status Then
ToolTip("MAJ activée", @desktopwidth/2, 10)
Else
ToolTip("")
EndIf
$status0 = $status
EndIf
EndFunc
Func _IsToggled($sHexKey, $vDLL = 'user32.dll')
Local $a_R = DllCall($vDLL, "short", "GetKeyState", "int", '0x' & $sHexKey)
If Not @error And BitAND($a_R[0], 0xFF) = 1 Then Return 1
Return 0
EndFunc ;==>_IsToggled
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Utilisateur 4989 supprimé
Status :
Hors ligne
#3
Message
par Utilisateur 4989 supprimé » dim. 03 mars 2013 15:51
Merci, c'est nickel
Désolé, j'envahis le forum avec toutes mes questions, mais sans ton aide précieuse, je ne serait jamais arrivé à faire tout ça. Encore une fois, merci beaucoup.
Sujet résolu.