[..] Touches shift, ctrl et alt qui bug avec script.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

[..] Touches shift, ctrl et alt qui bug avec script.

#1

Message par Tazbox »

Bonjour.

J'ai édité mon message pour le mettre à jour par rapport au problème.

Donc voila le problème est citer plus bas mais je fait un petit rappel pour ceux qui lirait se post pour la 1ere fois.

J'ai essayé plusieurs script qui permettent d'envoyé une touche en boucle ou un certain nombre de fois. Les script font bien leurs travaille mais j'ai un problème avec les touche shift, ctrl et alt qui restent bloqué si j'appuie dessus pendant l'exécution du script.
Seule ses touches bug, les touches de lettre ou de texte ne bug pas elle marchent correctement et ne restent pas bloqué. Donc voila pourquoi je me demande vraiment pourquoi seul les touches shift, ctrl et alt bug.
Je me demande si c'est autoit qui n'est pas au point par rapport à ca ou si il faut ajouter un truc au script pour que ses touches ne bug pas.

En lisant le tuto d'autoit, je vois qu'ils disent que les touches Alt, Ctrl, Shift, Win ne peuvent pas être utilisé comme raccourcis HotKeySet, mais ses touches peuvent être mis dans une fonction send pour être envoyé par un script. Donc je sais pas je me demande si peut etre le bug vient du fait qu'on ne puisse pas mettre ses touches en racourcis clavier avec autoit.

Voila j'espere avoir été claire merci pour votre aide.
Modifié en dernier par Tazbox le dim. 16 mai 2010 07:19, modifié 2 fois.
Karachi
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 12 mai 2010 21:27
Status : Hors ligne

Re: [..] Problème de pause

#2

Message par Karachi »

Essaie plutôt avec une boucle de ce type ou avec un for:
► Afficher le texte
Modifié en dernier par Iste le lun. 17 mai 2010 09:44, modifié 2 fois.
Raison : Suppression des balises de code Autoit (MP envoyé)
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Problème de pause

#3

Message par Tazbox »

Merci bien pour ta réponse Karachi, ton script marche aussi bien que mon 1er script, le problème c'est que je vois pas ou c'est qu'on vois le nombre de fois ou la touche va etre envoyer ? Quand on met pause et qu'on reprend ca repend ou ca en était ? stp aide moi
Modifié en dernier par Tazbox le ven. 14 mai 2010 13:57, modifié 1 fois.
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: [..] Problème de pause

#4

Message par pop45 »

Code : Tout sélectionner

While $i < 5000  ; For $i = 1 to 5000
Send("{F8}")
$i += 1
WEnd ; Next
sinon logiquement oui sa reprend la ou sa en était après avoir arrête la pause

Heu karachi juste un truck
La coloration de code c'est autoriser que dans exemple de script je crois donc enlève le :)
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Karachi
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 12 mai 2010 21:27
Status : Hors ligne

Re: [..] Problème de pause

#5

Message par Karachi »

Ah bon O_O ! Ah ben chui désolé alors, merci de me prévenir !
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Problème de pause

#6

Message par Tazbox »

Merci les gars, mais ce script me fait le même problème qu'avec mon 1er script. Pendant que le script est en marche et envoi la touche f8, si j'appui sur touche shift, ctrl ou alt, c touche reste bloquer comme si je restais enfoncé dessus.

Je trouve ca bizarre par ce qu'avec un script tout simple d'une seul ligne j'ai pas se problème.

Code : Tout sélectionner

Send("{F8 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}")
 
Voila avec se script par exemple, quand il est en marche je peux appuyé sur shift, ctrl ou alt, autant de fois que je veux, la touche ne se bloque jamais.

Donc je me demande pourquoi avec un script un peut plus compliquer ces touches ce bloque.

Si vous savez et que vous pouviez me le dire, ca m'aiderait vraiment, merci.
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Problème de pause

#7

Message par Tazbox »

Svp personne sais d'ou peut venir se problème des touches shift, ctrl et alt ??? J'ai chercher demander à pas mal de mondes mais personne sais, svp help si quelqu'un connais se pb !!
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Problème de pause

#8

Message par SagePourpre »

Ton deuxième code ne fonctionne pas parce que tu démarre l'envoi de la touche F8 5000 fois.
Pendant ce temps, RIEN d'autre ne peut s'exécuter.

Utilise plutôt quelque chose comme ceci :

Code : Tout sélectionner

#include <misc.au3>
Global $Pause

HotKeySet("{F12}", "End")
HotKeySet("{F4}", "Pause")

While 1
    Switch $Pause
        Case False
            Sleep(100)
        Case True
            Send("{F8}")
            Sleep(15)
    EndSwitch
WEnd

Func End()
    Exit
EndFunc   ;==>End

Func Pause()
    $Pause = Not $Pause
EndFunc   ;==>Pause
 
Je te recommende de mettre un sleep même quand tu envoies tes 'F8'
pour diminuer l'usage du cpu...

Un sleep de 10ms signigie que tu as 100 fois la touche F8 envoyée par seconde...
Si ce n'est pas suffisant, tu peux toujours réduire le sleep voir l'enlever mais bon...

Par défaut, le délai minimum entre chaque touches envoyées à l'aide de Send est de 5ms.
Tu peux changer ce délai en modifiant

Code : Tout sélectionner

Opt('SendKeyDelay',5)
pour une autre valeur.


Si tu veux que le script stoppe automatiquement après un nombre x de répétition ...

Code : Tout sélectionner

#include <misc.au3>
Global $Pause = True

HotKeySet("{F12}", "End")
HotKeySet("{F4}", "Pause")

While 1
    Switch $Pause
        Case False
            For $i = 1 To 5000
                ToolTip($i, 0, 0)
                Send("{F8}")
                If $Pause = True Then ExitLoop
            Next
            $Pause = True
        Case True
            Sleep(100)



    EndSwitch
WEnd

Func End()
    Exit
EndFunc   ;==>End

Func Pause()
    $Pause = Not $Pause
EndFunc   ;==>Pause
 
De cette façon, chaque fois que le script démarre, il débute à 1 et arrête à 5000
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Problème de pause

#9

Message par Tazbox »

Merci pour ta réponse et ton aide Sage. Mais meme avec ton script j'ai toujours le même problème, toujours les touche de fonction (ctrl, alt, shift) qui se bloquent si j'appuie dessus pendant l'exécution du script. J'aimerais vraiment savoir d'ou vient se problème !!
Pendant l'exécution du script toutes les autres touches ne se bloquent pas et répondent bien, il y a juste les touches ctrl, alt et shift qui se bloquent, je trouve ca vraiment tres bizarre pas vous ?
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Touches shift, ctrl et alt qui bug avec script.

#10

Message par Tazbox »

Dites moi pas que j'ai collé tlm avec se problème, moi qui pensais trouver des pro sur se site. Si quelqu'un à la réponse ca serait sympa de répondre, je pense pas que se soit un probleme evidant à resoudre, en tous cas je cherche comme un fou et je trouve aucune solution :(
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Touches shift, ctrl et alt qui bug avec script.

#11

Message par SagePourpre »

Je dirais tout simplement que c'est de la façon qu'autoit est codée.

Les touches systèmes ne sont pas gérées exactement de la même façon...

Si par exemple tu réalise un hook de ton clavier pour capturer toutes les
touches pressées avant même qu'elle apparaisse à l'écran, il existe un
flag spécial qui est différent selon si c'est une touche normale ou système.

Tout ça pour dire que ces touches sont gérées par le système d'une façon légèrement
différente. Donc, pour cet raison, je ne considère pas l'événement comme très bizarre mais
comme étant plausible, bien que je ne puisse affirmer la justesse de mon affirmation.

De plus, prenant en considération que tu envoies 100 fois la même touche en une seconde...

Un moyen de contourner cet effet serait de vérifier avant chaque envoi de la touche si une
touche système est pressée ( _Ispressed ) et si oui, d'attendre que la touche soit relâchée
avant d'envoyer la touche à nouveau.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Tazbox
Niveau 2
Niveau 2
Messages : 29
Enregistré le : mar. 23 mars 2010 11:07
Status : Hors ligne

Re: [..] Touches shift, ctrl et alt qui bug avec script.

#12

Message par Tazbox »

Merci pour ta réponse sage, donc c mort alors c bien ce qui me semblait c autoit qui bug et non pas les codes que j'ai pu tester, dommage :(
Répondre