J'ai besoin d'un peu d'aide a propos d'un petit script que j'ai écrit pour gagner du temps.
En fait j'ai une fenêtre qui me montre l'état de connexion des enceintes bluetooth et j'active et désactive la connexion entre mon ordinateur et les enceintes à l'aide d'un bouton.
Je commence par afficher la fenêtre par un raccourci (Ctrl+Alt+S), ensuite vu que le bouton met environ 2-3 secondes pour s'afficher, je fais une boucle pour détecter la couleur. Après ça, le script clique sur le bouton et environ 2 secondes après l'état de connexion change (jusque là tout va bien), pour finir le script doit fermer la fenêtre.
Mon problème est que une fois que je clique sur le bouton je n'arrive pas faire comprendre à l'ordinateur que l'état à changé, je voudrais faire en sorte que une fois que l'état à changé la fenêtre se ferme.
J'ai fais ce que j'ai pu mais ça n'a pas l'air de fonctionner, il y a un autre problème, la MsgBox met dans les 4 secondes pour s'afficher (je sais pas si c'est normal) et je ne comprends pas pourquoi.
Pour détecter l'état de connexion, je me sers de PixelGetColor sur 2 pixels :
- 1 sur le logo bluetooth
- Et l'autre sur les barres croissant du signal (à droite du "Force de signal")
Je poste aussi les capture d'écran pour que vous voyez la différence entre "Activé" et "Désactivé".
Je n'ai aucune idée de pourquoi les lignes 11 et 16 sont coupés en deux et je suis désolé.
Je sais pas si c'est très clair, dites moi si je dois expliquer mieux que ça.
Merci de me lire et de me répondre.
Func _soundSticks()
Local $logoBT = 0x2FF30E ; Vert clair
Local $logoSignalBT = 0x69AD81 ; Vert foncé
Send("^!s")
WinWaitActive("SoundSticks Wireless", "")
WinSetState("SoundSticks Wireless", "", @SW_MAXIMIZE)
While 1
$testLogoBT = PixelGetColor(689, 105)
$testLogoSignalBT = PixelGetColor(850, 225)
If Hex($logoBT, 6) = Hex($testLogoBT, 6) AND Hex($logoSignalBT, 6) = Hex($testLogoSignalBT, 6) Then ; Si le bouton est activé
MsgBox(64, "PixelGetColor", "Bluetooth : ON")
MouseMove(1190, 315, 5)
MouseClick("left")
ExitLoop
ElseIf Hex(0xFFFFFF, 6) = Hex($testLogoBT, 6) AND Hex(0xDD2223, 6) = Hex($testLogoSignalBT, 6) Then ; Si le bouton est désactivé
MsgBox(64, "PixelGetColor", "Bluetooth : OFF")
MouseMove(1190, 315, 5)
MouseClick("left")
ExitLoop
Else
Sleep(250)
EndIf
Sleep(100)
WEnd
WinClose("SoundSticks Wireless", "")
Exit
EndFunc ;==>_soundSticks
Local $logoBT = 0x2FF30E ; Vert clair
Local $logoSignalBT = 0x69AD81 ; Vert foncé
Send("^!s")
WinWaitActive("SoundSticks Wireless", "")
WinSetState("SoundSticks Wireless", "", @SW_MAXIMIZE)
While 1
$testLogoBT = PixelGetColor(689, 105)
$testLogoSignalBT = PixelGetColor(850, 225)
If Hex($logoBT, 6) = Hex($testLogoBT, 6) AND Hex($logoSignalBT, 6) = Hex($testLogoSignalBT, 6) Then ; Si le bouton est activé
MsgBox(64, "PixelGetColor", "Bluetooth : ON")
MouseMove(1190, 315, 5)
MouseClick("left")
ExitLoop
ElseIf Hex(0xFFFFFF, 6) = Hex($testLogoBT, 6) AND Hex(0xDD2223, 6) = Hex($testLogoSignalBT, 6) Then ; Si le bouton est désactivé
MsgBox(64, "PixelGetColor", "Bluetooth : OFF")
MouseMove(1190, 315, 5)
MouseClick("left")
ExitLoop
Else
Sleep(250)
EndIf
Sleep(100)
WEnd
WinClose("SoundSticks Wireless", "")
Exit
EndFunc ;==>_soundSticks