Poker Addict !

Communauté Poker

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille
Home Boite a outils AutoHotkey

Création de macros clavier et souris et de combinaisons de touches

Ce soft est utilisé par tous les gros multitableurs poker en ligne
Il permet d'automatiser/capturer/reconfigurer/etc.



Cette brève introduction vous aidera à démarrer tout de suite l'écriture de vos propres macros et combinaisons de touches.

Contenu du Tutoriel

Créer un script

Chaque script est un fichier texte contenant les commandes qui seront exécutées par le programme (AutoHotkey.exe). Un script peut aussi contenir des combinaisons de touches et des subtitutions de chaînes, ou même n'avoir que ces définitions. Cependant, en l'absence de combinaisons de touches et subtitutions de chaînes, un script exécutera ses commandes séquentiellement du haut vers le bas au moment où il sera chargé.

 

Pour créer un nouveau script :

  1. Ouvrez l'Explorateur Windows et sélectionnez un dossier de votre choix.
  2. Déroulez le menu Fichiers et choissisez Nouveau >> AutoHotkey Script (ou Document Texte).
  3. Entrez un nom pour le fichier, assurez-vous qu'il se termine par .ahk. Par exemple : Test.ahk
  4. Faites un clic droit sur le fichier et sélectionnez Edit Script.
  5. Sur une nouvelle ligne vide, entrez ce qui suit :
    #space::Run www.google.com

 

Une fois AutoHotkey installé, il va donc nous falloir un script permettant de réaliser notre objectif: lancer winamax en entrant automatiquement sa date de naissance.

le script existe déjà, il suffit de copier le code suivant:

#SingleInstance FORCE BirthDate:="20/12/1972"
StringSplit, BirthDate, BirthDate , \/run, C:\\Program Files\\Winamax Poker\\Winamax Poker.exe;Gui, Submit, NoHideWinActivate, ahk_class ApolloRuntimeContentWindow,,
;WinActivate, ahk_class Notepad
Winwaitactive, ahk_class ApolloRuntimeContentWindow
;MsgBox, %BirthDate1%
;Send, {Tab}
ControlClick,x484 y325,ahk_class ApolloRuntimeContentWindow
Sleep,500
Send, %BirthDate1%
Send, %BirthDate2%
Send, %BirthDate3%
Send, {Enter}ExitApp
Nicolas Lap Ma config perso : je clic et j ouvre poker star; mypok;poker stove;poker traker;etc.... Run,"C:\Program Files (x86)\PokerStars.FR\PokerStars.exe"
Run,"C:\Program Files (x86)\PokerTracker 3\PokerTracker.exe"
Run,"C:\Program Files (x86)\PokerStove\PokerStove.exe"
Run,"C:\Microgaming\Poker\mypokfr\MPPoker.exe"

 

Le symbole # représente la touche Windows, donc #space signifie enfoncer la touche Windows puis appuyer sur la barre d'espace pour activer la combinaison de touches. Les :: signifient que la commande qui suit devrait être exécutée chaque fois que cette combinaison de touches est enfoncée, dans le cas présent aller sur le site web Google. Pour tester ce script, continuez ainsi :

  1. Enregistrez et fermez le fichier.
  2. Dans l'Explorateur Windows, double-cliquez sur le script pour le charger. Une nouvelle icône apparait dans la zone de notification.
  3. Maintenez la touche Windows enfoncée et appuyez sur la barre d'espace. Une page Web s'ouvre dans le navigateur par défaut.
  4. Pour quitter ou éditer le script, faites un clic droit sur son icône dans la zone de notification.

Note : Plusieurs scripts peuvent être exécutés simultanément, chacun avec sa propre icône dans la zone de notification.

Lancer un programme ou un document

Run, mailto: Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.

Une combinaison de touches peut être assignée à chacun des exemples ci-dessus en incluant une étiquette de combinaison de touches. Dans le premier exemple ci-dessous, la combinaison de touches assignée est Win+N, tandis que dans le second c'est Control+Alt+C :

#n::Run, Notepad
^!c::Run, calc.exe

Les exemples ci-dessus sont connus comme des combinaisons de touches à ligne unique car chacune d'elles consiste en seulement une commande. Pour exécuter plus d'une commande via une combinaison de touches, placer la première ligne sousla définition de la combinaison de touches et placer un return sur la dernière ligne. Par exemple :

#n::
Run, http://www.google.com
Run, Notepad.exe
return

Si le programme ou document à exécuter n'est pas intégré au système, spécifiez son chemin d'accès complet pour obtenir son lancement :

Run, %ProgramFiles%\Winamp\Winamp.exe

Dans l'exemple ci-dessus, %ProgramFiles% est une variable d'environnement maintenue par le système d'exploitation. En l'utilisant plutôt que quelque chose comme C:\Program Files, le script est plus portable, ce qui signifie qu'il est plus probable qu'il s'exécutera sans modification sur d'autres ordinateurs.

Pour que le script attende la fermeture d'un programme ou d'un document avant de continuer, utiliser RunWait au lieu de Run. Dans l'exemple suivant, la commande MsgBox ne s'exécutera pas tant que l'utilisateur n'aura pas fermé Notepad :

RunWait, Notepad
MsgBox, L'utilisateur a terminé (Notepad a été fermé).

Pour en apprendre plus au sujet du lancement de programmes -- comme le passage de paramètres, spécification du répertoire de travail, et découverte du code de sortie d'un programme -- voyez le tutoriel sur le lancement.

Envoyer des codes de touches et des clics de souris

Les codes de touches sont envoyés vers la fenêtre active (au premier plan) en utilisant la commande Send. Dans l'exemple suivant, Win+S devient une combinaison de touches pour saisir une signature. Assurez-vous qu'une fenêtre telle qu'un éditeur de texte ou de message e-mail est active avant d'appuyer sur Win+S :

#s::
Send, Cordialement,{Enter}Pascal Martin
return

Dans l'exemple ci-dessus, tous les caractères sont envoyés litérallement excepté {Enter}, lequel simule l'appui sur la touche Entrée. L'exemple suivant illustre quelques-uns des autres caractères spéciaux communément utilisés.

Send, ^c!{tab}collé :^v

La ligne ci-dessus envoie un Control+C suivi par un Alt+Tab suivi par la chaîne de caractères "collé :" suivie par un Control+V. Voir la commande Send pour une liste complète des caractères spéciaux et touches.

Pour finir, les codes de touches peuvent aussi être envoyés en réponse aux abréviations que vous tapez. Par exemple, chaque fois que vous tapez cad suivi par un espace ou une virgule, la ligne suivante le remplacera par c'est-à-dire :

::cad::c'est-à-dire


Clics de souris : Pour envoyer un clic de souris vers une fenêtre il est d'abord nécessaire de déterminer les coordonnées X & Y où le clic devrait arriver. Ceci peut être fait avec soit AutoScriptWriter soit Window Spy, lesquels sont inclus avec AutoHotkey. Les étapes suivantes s'appliquent à la méthode Window Spy :

  1. Lancez Window Spy depuis le menu de l'icône de notification du programme ou depuis le Menu Démarrer.
  2. Activez la fenêtre qui vous interesse soit en cliquant sur sa barre de titre, en appuyant sur Alt-Tab, ou d'une autre manière (Window Spy est conçu pour rester "toujours visible").
  3. Déplacez le curseur de la souris vers la position désirée dans la fenêtre cible et notez les coordonnées de la souris affichées par Window Spy (ou appuyez sur Shift-Alt-Tab pour activer Window Spy ainsi les coordonnées "figées" peuvent être copiées et collées).
  4. Utilisez les coordonnées découvertes ci-dessus avec la commande MouseClick. L'exemple suivant clique le bouton gauche de la souris :
    MouseClick, left, 112, 223

Pour déplacer la souris sans cliquer, utilisez MouseMove. Pour faire glisser la souris, utilisez MouseClickDrag.

Activer et manipuler les fenêtres

Pour activer une fenêtre (la mettre au premier plan), utilisez WinActivate. Pour détecter si une fenêtre existe, utilisez IfWinExist ou WinWait. L'exemple suivant illustre ces commandes :

IfWinExist, Sans titre - Bloc-notes
{
	WinActivate
}
else
{
	Run, Notepad
	WinWait, Sans titre - Bloc-notes
	WinActivate
}

L'exemple ci-dessus cherche premièrement pour chaque fenêtre existante celle pour laquelle le titre commence par "Sans titre - Bloc-notes" (respecte la casse). Si une telle fenêtre est trouvée, elle est activée. Autrement, Notepad est lancé et le script attend que la fenêtre Sans titre apparaisse, puis l'active. L'exemple ci-dessus utilise aussi la dernière fenêtre trouvée pour qu'il ne soit plus necessaire de spécifier le titre de la fenêtre avec chaque WinActivate.

Quelques-unes des autres commandes de fenêtres utilisées communément sont :

  • IfWinActive : Vérifie si la fenêtre spécifiée est réellement active.
  • WinWaitActive : Attend que la fenêtre spécifiée devienne active (typiquement utilisée immédiatement après une commade Run).
  • WinClose : Ferme la fenêtre spécifiée.
  • WinMove : Déplace ou redimensionne la fenêtre spécifiée.
  • WinMinimizeWinMaximizeWinRestore : Réduit, Agrandit, ou Restaure la fenêtre spécifiée, respectivement.

Récupérer une entrée utilisateur avec MsgBox, InputBox, etc.

L'exemple suivant affiche une boîte de dialogue avec deux boutons (Oui et Non) :

MsgBox, 4, , Voulez-vous continuer ?
IfMsgBox, No
	return
; Autrement, l'utilisateur a choisi oui.
MsgBox, Vous avez appuyé sur Oui.

Utilisez la commande InputBox pour demander à l'utilisateur de saisir un texte. Utilisez FileSelectFile ou FileSelectFolder pour que l'utilisateur puisse sélectionner un fichier ou un dossier. Pour plus de tâches avancées, utilisez la commande Gui pour créer des formulaires d'entrée de données personnalisés et des interfaces utilisateurs.

Utiliser les variables et le presse-papier

Les variables sont des zones de la mémoire mises de côté pour garder des valeurs. Une valeur (ou chaîne comme c'est quelquefois appelé) peut être n'importe quelle série de caractères ou chiffres. Bien qu'aucune distinction n'est faite entre textes et nombres (les deux sont stockés comme chaîne de caractères), dans quelques contextes une chaîne qui est purement numérique est traitée différemment d'une qui ne l'est pas. Par exemple, l'expression if (InputString > BookmarkString) comparerait les deux variables comme des nombres si toutes deux contenaient des valeurs numériques. Autrement, elle les comparerait selon l'ordre alphabétique.

À l'exception des variables locales dans les fonctions, toutes les variables sont globales. C'est-à-dire leur contenu peut être lu ou modifié par n'importe quelle sous-routine dans tout le script. De plus, les variables sont en général non déclarées ; elles existent automatiquement.

Pour assigner une chaîne à une variable, suivez ces exemples :

MaVar1 = 123
MaVar2 = ma chaîne
Pour comparer le contenu d'une variable à un nombre ou une chaîne, suivez ces exemples :
if MaVar2 = ma chaîne
{
	MsgBox MaVar2 contient la chaîne "ma chaîne".
}
if MaVar1 >= 100
{
	MsgBox MaVar1 contient %MaVar1%, qui est un nombre supérieur ou égal à 100.
}

Dans la ligne ci-dessus, notez que la seconde occurence de MaVar1 se trouve entre les signes pourcents. Ceci affiche le contenu de MaVar1 à cette position. La même technique peut être utilisée pour copier le contenu d'une variable vers une autre. Par exemple :

MaVarConcatenee = %MaVar1% %MaVar2%

La ligne ci-dessus stocke la chaîne "123 ma chaîne" (sans les guillemets) dans la variable MaVarConcatenee.

Pour comparer le contenu d'une variable avec celui d'une autre, considérez cet exemple :

if (ItemCount > ItemLimit + 1)
{
	MsgBox La valeur dans ItemCount, qui est %ItemCount%, est plus grande que %ItemLimit% + 1.
}

Notez que la première ligne de l'exemple ci-dessus contient des parenthèses. Les parenthèses signifient que l'instruction-if contient une expression. Sans elles, la ligne serait considérée comme une "instruction-if sans-expression" et donc, il y aurait besoin de signes pourcents autour de ItemLimit. De telles instructions-if sont limitées à un seul opérateur de comparaison c'est-à-dire qu'elles ne peuvent pas contenir d'opérateurs mathématiques ou des conjonction telles que "AND" et "OR".


Math : Pour effectuer une opération mathématique, utilisez l'opérateur deux-point-égal (:=) pour assigner le résultat d'une expression à une variable comme dans l'exemple ci-dessous :

PrixNet := Prix * (1 - Discount/100)

Voir les expressions pour une liste complète des opérateurs mathématiques.


Presse-papier (clipboard) : la variable qui se nomme Clipboard est spéciale car elle contient le texte qui se trouve dans le presse-papier Windows. Néanmoins, elle peut être utilisée comme si c'était une variable normale. Par exemple, la ligne suivante devrait afficher le contenu actuel du presse-papier :

MsgBox %clipboard%

Pour modifier le contenu du presse-papier, considérez l'exemple suivant, lequel remplace le contenu actuel du presse-papier par un nouveau texte :

clipboard = ligne du texte.`r`nA seconde ligne du texte.`r`n

Ci-dessus, `r et `n (accent grave suivi par la lettre "r" ou "n") sont utilisés pour indiquer deux caractères spéciaux : carriage return (retour chariot) et linefeed (saut de ligne). Ces deux caractères marquent une nouvelle ligne de texte comme si l'utilisateur avait appuyé sur Entrée.

Pour ajouter du texte au presse-papier (ou à n'importe quelle autre variable), suivez cet exemple :

clipboard = %clipboard% Et ici se trouve le texte à ajouter.

Voir les sections presse-papier et variables pour plus de détails.

Répéter une série d'actions à plusieurs reprises

Pour exécuter quelque chose plus d'une fois consécutivement, une boucle est la solution. La boucle suivante affiche une MsgBox trois fois :

Loop 3
{
	MsgBox Cette fenêtre sera affichée trois fois.
}

Vous pouvez aussi spécifier une variable après le mot Loop, ce qui est très utile dans les situations où le nombre d'itérration est déterminée quelque part dans le script :

Loop %RunCount%
{
	Run C:\Check Server Status.exe
	Sleep 60000 ; Attend 60 secondes.
}

Ci-dessus, la boucle est effectuée le nombre de fois spécifié à moins que RunCount ne contienne 0, dans ce cas la boucle est sautée entièrement.

Une boucle peut aussi se terminer elle-même quand une ou plusieurs conditions change, comme montré ci-dessous :

Loop ; Puisqu' aucun nombre n'est spécifié, c'est une boucle infinie à moins que "break" ou "return" ne soit rencontré à l'intérieur.
{
	PixelGetColor, Color, 11, 22
	if Color = 0xEEAA99 ; Ce pixel est maintenant de la bonne couleur.
		break ; Sortir de la boucle
	; Autrement, garder le bouton OK enfoncé jusqu'à ce que le pixel change de couleur :
	ControlClick, OK, Titre de la fenêtre cible
}

L'exemple ci-dessus est fonctionellement identique à ce qui est quelquefois appelé une boucle "while...do". L'expression "while...do" se rapporte au fait que cette boucle fait quelque chose répétitivement tant que une ou plusieurs condition(s) reste(nt) vraie(s). Dans ce cas, la boucle continue en cliquant sur un bouton tant que le pixel est de la mauvaise couleur. Quand la bonne couleur apparait, la boucle s'arrête elle-même avec la commande break, laquelle oblige l'exécution à sauter à la ligne après l'accolade de fin de boucle.

Les exemples montrés ci-dessus sont des boucles universelles. Pour des besoins plus spécialisés, considérez l'une des boucles suivantes :

Boucle de lecture/écriture d'un fichier : Récupère les lignes dans un fichier texte, une à la fois. Ceci peut être utilisé pour transformer un fichier dans un format différent ou le mettre en forme sur une base ligne-à-ligne. Ça peut aussi être utilisé pour rechercher des lignes qui correspondent à certains critères.

Boucle de fichiers et dossiers : Récupère les fichiers ou dossiers spécifiés, un à la fois. Ceci permet d'effectuer une opération sur chaque fichier ou dossier qui correspond à vos critères.

Boucle d'analyse : Récupère des sous-chaînes d'une chaîne, une à la fois. Ceci permet qu'une chaîne telle que "Rouge,Vert,Bleu" soit facilement décomposée en les trois champs qui la composent.

Boucle de base de registre : Récupère le contenu des clés du registre spécifiées, un article à la fois.

Manipuler des fichiers et des dossiers

Pour ajouter du texte à la fin d'un fichier (ou créer un nouveau fichier), utilisez FileAppend comme montré dans l'exemple suivant. Notez l'utilisation de `n (linefeed) pour débuter une nouvelle ligne après :

FileAppend, Une ligne de texte à ajouter.`n, C:\Mes Documents\Mon Fichier Texte.txt

Pour écraser un fichier existant, utilisez FileDelete avant FileAppend. Par exemple :

FileDelete, C:\Mes Documents\Mon Fichier Texte.txt

Quelques-unes des autres commandes de fichiers et dossiers communément utilisées sont :

Vue d'ensemble des autres fonctionalités

Voir la liste des commandes pour une vue d'ensemble de toutes les commandes.


Accueil | Téléchargement | Documentation | Historique | Support | Forum


 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Toolbox Facebook


Visiteurs

www.joomlatutos.com
mod_jts_counterstats
mod_jts_counterstats
mod_jts_counterstats
mod_jts_counterstats
mod_jts_counterstats
mod_jts_counterstats
Aujourd'hui :
40
Hier :
112
Semaine :
540
Mois :
2051
Il y a 1 utilisateur en ligne
-
1 invité