Autohotkey

FSUIPC / Emulateurs de claviers & souris / IOCP, etc...

Re: Autohotkey

Messagede algue14 » Sam 18 Aoû 2012 16:59

Dragty a écrit:Je vais pas mentir, j'ai pris un script chez les anglais, j'ai remplacé les touches mises par celle que je voulais et enlever les commentaire pour faire plus propre, mais j'ai évité d'enlever les ponctuations car je sais que certaines peuvent etre cruciales


Grosse erreur tapebaton
les commentaires sont écrits par le concepteur justement pour que les lecteurs comprennent le rôle du script.il faut les laisser et c'est comme ça que le script est le plus propre .
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Autohotkey

Messagede Dragty » Lun 20 Aoû 2012 11:35

J'ai voulu essayer de comprendre par moi même mais apparement j'aurais pas du gratgrat. Mais y'a certaine chose que je ne comprend du type
"Le code d'origine est le suivant: End this thread so that the one underneath will resume and see the change made by the line above. "
En relisant les commentaire ( merci Algue ), j'ai peut etre une idée quant a l'erreur ( je dis bien peut etre ):
On dit que si la touche Win Z ( dans le script de base ) ne 'marche plus' le script s'arette, mais je ne vois nul part le fait ou l'on dit
Code: Tout sélectionner
Send, {WinZ Up}

Apres je suis peut etre sur une fausse route, mais si c'est ca je viens d'essayer de le placer a plusieurs endroit mais sans succés murrouge.

Code: Tout sélectionner
#MaxThreadsPerHotkey 3
#z::  ; Win+Z hotkey (change this hotkey to suit your preferences).
#MaxThreadsPerHotkey 1
if KeepWinZRunning  ; This means an underlying thread is already running the loop below.
{
    KeepWinZRunning := false  ; Signal that thread's loop to stop.
    return  ; End this thread so that the one underneath will resume and see the change made by the line above.
}
; Otherwise:
KeepWinZRunning := true
Loop
{
    ; The next four lines are the action you want to repeat (update them to suit your preferences):
    ToolTip, Press Win-Z again to stop this from flashing.
    Sleep 1000
    ToolTip
    Sleep 1000
    ; But leave the rest below unchanged.
    if not KeepWinZRunning  ; The user signaled the loop to stop by pressing Win-Z again.
        break  ; Break out of this loop.
}
KeepWinZRunning := false  ; Reset in preparation for the next press of this hotkey.
return
Dragty
 
Messages: 9
Inscription: 5/08/12

Re: Autohotkey

Messagede algue14 » Lun 20 Aoû 2012 12:44

Pour un début t'es pas parti sur quelque chose de simple ecroulerire

Voilà ce que je comprend

au départ on veut que le script ne soit pas lancé plus de 3 fois : MaxThreadsPerHotkey 3

ensuite on définit une hotkey ( WinZ)
#z:: ; Win+Z hotkey (change this hotkey to suit your preferences).
ce qui vient après sera exécuté après l'appui sur WinZ

KeepWinZRunning contrôle si la boucle est active ou arrêtée :
active : KeepWinZRunning = true
arrêtée: KeepWinZRunning =false

il ne faut pas lancer la boucle plusieurs fois ,donc si elle est déjà active on la stoppe :
if KeepWinZRunning ; This means an underlying thread is already running the loop below.
{
KeepWinZRunning := false ; Signal that thread's loop to stop.
return ; End this thread so that the one underneath will resume and see the change made by the line above.


sinon on l'autorise : KeepWinZRunning := true

après vient la boucle en elle même qui affiche le message:
"Press Win-Z again to stop this from flashing." clignotant

elle sera stopée par:
if not KeepWinZRunning ; The user signaled the loop to stop by pressing Win-Z again.
break ; Break out of this loop.



la dernière ligne est un "reset" pour préparer a un nouvel appui sur CtrlW
KeepWinZRunning := false ; Reset in preparation for the next press of this hotkey.
return


en fait ce script réalise un "toggle" avec CtrlWin
un appui lance la boucle
un autre appui la stoppe ect..ect..

attention il y a une autre version de autohotkey : autohotkey -L qui semble avoir plus de possibilité
si tu chope un script écrit avec,il sera peut-être pas compatible avec la version de base. furieuxfumée

dans ton script il y a une erreur ( un "o" en trop )

Dragty a écrit:Pour la boucle, je me suis décidé a fair eun tour chez les anglais et j'ai réussi a faire ca:
#MaxThreadsPerHotkey 3
^q:: ;
#MaxThreadsPerHotkey 1
if KeepCtrlQRunning ;
{
KeepCtrolQRunning := false ;
return ;
}
; Otherwise:
KeepCtrlQRunning := true
Loop
{
;

Send, {Z Down}

;
if not KeepCtrlQRunning ; .
break ;
}
KeepCtrlQRunning := false ;
return

Le probleme c'est que la boucle se lance bien mais ne s'arette pas :/
Quand au inputbox, je vais tester ca, merci de tes réponses :)


Si tu disais ce que tu veux faire précisément, ce serait surement plus facile de t'aider a construire un script cligneoeil

A+

Alain
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Autohotkey

Messagede Dragty » Lun 20 Aoû 2012 18:36

Oui pour le o j'ai remarqué apres et supprimé ( je crois, je vais verifier de ce pas ).
Et pour le script ca me parraissait tout bete, en faite je veux simplement appuyer sur par exemple ctrl + z pour laisser enfoncer ma touche z ( pour avancer dans un jeu sans rien faire rirebleu ) Et appuyer sur une autre combinaison ou la meme si possible pour l'aretter :). Je voudrais également envoyer des clique de souris en boucle mais ca y'aura juste a modifier la boucle :).
Donc déja, je peux supprimer les #MaxThreadsPerHotkey? Je savais pas a quoi ca servait donc j'ai préféré ne pas y toucher, mais si ca m'impose une limite de fois, j'enleve furieuxfumée
Dragty
 
Messages: 9
Inscription: 5/08/12

Re: Autohotkey

Messagede algue14 » Jeu 23 Aoû 2012 14:18

Dragty a écrit:Donc déja, je peux supprimer les #MaxThreadsPerHotkey? Je savais pas a quoi ca servait donc j'ai préféré ne pas y toucher, mais si ca m'impose une limite de fois, j'enleve furieuxfumée

Non,non tu peux laisser:ça limite le nombre de fois que la boucle peut être lancée en même temps.
ça ne limite pas le nombre de fois que tu peux lancer la boucle.
Le script en question fonctionne parfaitement,d'ailleurs, tu dois le savoir car je pense que tu l'as essayé,non?
par contre je te déconseille les combinaisons avec la touche "Win",vu que par défaut elle ouvre le menu "démarrer"
il vaut mieux utiliser "Ctrl"
Je pense que tu peux modifier le contenu de la boucle comme ça ( pour un appui sur "CtrlZ")

Code: Tout sélectionner
 #MaxThreadsPerHotkey 3
   ^z::  ; ctrl+Z hotkey (change this hotkey to suit your preferences).
    #MaxThreadsPerHotkey 1
    if KeepCtrlZRunning  ; This means an underlying thread is already running the loop below.
    {
        KeepCtrlZRunning := false  ; Signal that thread's loop to stop.
        return  ; End this thread so that the one underneath will resume and see the change made by the line above.
    }
    ; Otherwise:
    KeepCtrlZRunning := true
    Loop
    {
        ; The next four lines are the action you want to repeat (update them to suit your preferences):
      Send {z down}
        ; But leave the rest below unchanged.
        if not KeepCtrlZRunning  ; The user signaled the loop to stop by pressing Ctrl-Z again.
            break  ; Break out of this loop.
    }
    KeepCtrlZRunning := false  ; Reset in preparation for the next press of this hotkey.
    return

ça devrait marcher
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Autohotkey

Messagede Dragty » Ven 24 Aoû 2012 15:40

algue14 a écrit:
Dragty a écrit:Donc déja, je peux supprimer les #MaxThreadsPerHotkey? Je savais pas a quoi ca servait donc j'ai préféré ne pas y toucher, mais si ca m'impose une limite de fois, j'enleve furieuxfumée

Non,non tu peux laisser:ça limite le nombre de fois que la boucle peut être lancée en même temps.
ça ne limite pas le nombre de fois que tu peux lancer la boucle.
Le script en question fonctionne parfaitement,d'ailleurs, tu dois le savoir car je pense que tu l'as essayé,non?
par contre je te déconseille les combinaisons avec la touche "Win",vu que par défaut elle ouvre le menu "démarrer"
il vaut mieux utiliser "Ctrl"
Je pense que tu peux modifier le contenu de la boucle comme ça ( pour un appui sur "CtrlZ")

Code: Tout sélectionner
 #MaxThreadsPerHotkey 3
   ^z::  ; ctrl+Z hotkey (change this hotkey to suit your preferences).
    #MaxThreadsPerHotkey 1
    if KeepCtrlZRunning  ; This means an underlying thread is already running the loop below.
    {
        KeepCtrlZRunning := false  ; Signal that thread's loop to stop.
        return  ; End this thread so that the one underneath will resume and see the change made by the line above.
    }
    ; Otherwise:
    KeepCtrlZRunning := true
    Loop
    {
        ; The next four lines are the action you want to repeat (update them to suit your preferences):
      Send {z down}
        ; But leave the rest below unchanged.
        if not KeepCtrlZRunning  ; The user signaled the loop to stop by pressing Ctrl-Z again.
            break  ; Break out of this loop.
    }
    KeepCtrlZRunning := false  ; Reset in preparation for the next press of this hotkey.
    return

ça devrait marcher


En fait, je n'ai pas essayer le script de base, je l'avais directement modifier, en tout cas merci beaucoup pour ton aide :) !
J'ai toujours le meme probleme murrouge: Je peux en effet la boucle et elle marche très bien, mais lance que je refais ctrl z, elle ne s'arette pas, et c'est déjà ca qui ne marchait pas dans l'autre script :/, tu aurais une solution? A moins que ce soit un autre touche qui la stop mais il ne me semble pas :/
Dragty
 
Messages: 9
Inscription: 5/08/12

Re: Autohotkey

Messagede algue14 » Ven 24 Aoû 2012 18:42

Dragty a écrit:En fait, je n'ai pas essayer le script de base,


Tu aurais pourtant du commencer par là!!!
poste ici le script tel que tu l'utilise
J'ai bien compris que tu souhaites qu'il lance l'appui sur la touche z puis la relâcher ensuite, mais
pour agir sur quel soft ? fenêtré ou pas ?
le soft est-il actif,( fenêtre au premier plan) quand tu essaye ton script ?
Il va falloir que tu sois précis dans tes explications et dans tes demandes sinon ce sera impossible de t'aider plus avant.

A+
Alain
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Autohotkey

Messagede Dragty » Dim 26 Aoû 2012 01:15

algue14 a écrit:
Dragty a écrit:En fait, je n'ai pas essayer le script de base,


Tu aurais pourtant du commencer par là!!!
poste ici le script tel que tu l'utilise
J'ai bien compris que tu souhaites qu'il lance l'appui sur la touche z puis la relâcher ensuite, mais
pour agir sur quel soft ? fenêtré ou pas ?
le soft est-il actif,( fenêtre au premier plan) quand tu essaye ton script ?
Il va falloir que tu sois précis dans tes explications et dans tes demandes sinon ce sera impossible de t'aider plus avant.

A+
Alain


Je vais tout expliquer du début.
Il y a un peu de temps, je jouais sur un jeu ( Minecraft ). L'admin avait fait des tutos en autohotkey permettant d'avancer et de miner tout seul ( pour miner il suffit de laisser le clique enfoncer ). Ca faisait deux maccros differents. A cette époque je ne m'interessais pas a ce language, j'ai donc simplement pris les script compresser et effacer les script. Seulement voila il y a peu je me suis mis a ce language, j'ai dont quelque maccros de base, et j'ai voulu recréer ces deux maccros par moi meme, seulement je n'y arrive. J'ai d'abord pensé a la fonction break, mais je n'ai pas réussi a la faire fonctionner, c'est alors que je suis venu ici pour chercher de l'aide. J'ai ensuite repenser a son maccro, j'ai essayer de me souvenir comment il etait fait. DAns mes souvenir il (l'admin) avait créer une fonction n. Quand elle etait sur 0, la boucle etait a l'arret et quand n=1, la boucle marchait.
Donc la macros doit laisser la touche z enfoncé quand j'appuis sur ctrl + z et si je ré-appuie, la boucle s'arette. Cette action s'effectue dans une fenetre au premier plan ( je sais a peu pres manier les changement de fenetre ).C'est une fenetre normale ( pas en fullscreen de base, qu'on peut agrandir ou réduire a notre guise ).
Donc pour résumer j'aimrai pouvoir apprendre a créer des boucle en entrant une combinaison de touche et en l'arettant en réappuyant sur la meme (ou une autre) combinaison de touche.
SI vous avez besoin d'autre précision, n'hesitez pas :) !
Dragty
 
Messages: 9
Inscription: 5/08/12

Précédente

Retourner vers Liaisons entreFS et les autres logiciels





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité