Page 1 sur 1
[V] Attendre la pression d'une touche
Posté : ven. 27 févr. 2015 23:27
par azerty2699
Bonjour,
J'aimerais faire un programme qui, a la pression de la touche "a", envoie "a" et écrive "a" dans un fichier. Voici mon code :
Code : Tout sélectionner
HotKeySet("a", send_it)
Func send_it()
Send("a")
FileWrite("send_keys", "a")
EndFunc ;==>sendit
Le problème est que, lorsque j'exécute le programme, ca se termine onstantannément... normal.
Mais comment faire pour que le programme attende la pression d'une touche ? J'ai essayé de mettre une boucle while infinie autout du HotkeySet mais ca ne fonctionne pas.
Merci de votre aide !
Re: [...]Attendre la pression d'une touche
Posté : ven. 27 févr. 2015 23:49
par sozary
Hum... Toi tu écris dans un fichier SANS ouvrir un fichier, t'es balèze dis moi

!
Ensuite le " Send("a")" permet d'écrire la lettre a, simuler l'appui de la touche a, or appui sur la lettre a la, dans le vide, sa sert à rien.
Enfin ton programme ne fait ici strictement rien vu qu'il sait qu'il y a un raccourcis clavier et une fonction, puis c'est fini, il faut mettre une boucle, comme tu l'as dis, mais de la bonne façon, pas "autour du HotKeySet".
Pour écrire dans un fichier que tu as appuyé sur a QUAND tu appuis sur 'a' (je garde ta technique du HotKeySet()), sa donne:
Code : Tout sélectionner
HotKeySet("a", "send_it")
While 1
Sleep(10)
WEnd
Func send_it()
$file=FileOpen("test.txt",2)
FileWrite($file, 'La touche "a" a été appuyé!')
FileClose($file)
Exit
EndFunc ;==>sendit
Re: [...]Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 00:15
par azerty2699
Merci ca fonctionne, mais j'aimerais que une fois la touche "a" appuyée, le programme ne s'arrête pas, de facon à ce que si je rappuie sur cette touche la ligne se réecrive... Une idée ? Merci !
Re: [...]Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 00:24
par orax
Sans FileOpen ça marche aussi ^^

Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 12:05
par sozary
Dans ce cas il faut prévoir une touche qui sort de la boucle et du programme, ici j'ai choisis Escape:
Code : Tout sélectionner
HotKeySet("a", "send_it")
HotKeySet("{ESC}", "_exit")
While 1
Sleep(10)
WEnd
Func send_it()
FileWrite("test.txt", 'La touche "a" a été appuyé!'&@CRLF)
EndFunc ;==>sendit
Func _exit()
Exit
EndFunc ;==>_exit
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 12:24
par azerty2699
Merci. Cepandant J'ai un dernier souhait : comment choisir l'emplacement du fichier ?
J'ai essayé ceci :
Code : Tout sélectionner
FileWrite("C\users\test\Desktop\test.txt", 'La touche "a" a été appuyé!'&@CRLF)
mais ca ne fonctionne pas...
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 12:55
par sozary
Voilou:
Code : Tout sélectionner
HotKeySet("a", "send_it")
HotKeySet("{ESC}", "_exit")
While 1
Sleep(10)
WEnd
Func send_it()
FileWrite("C:\Users\"&@UserName&"\Desktop\test.txt", 'La touche "a" a été appuyé!'&@CRLF)
EndFunc ;==>sendit
Func _exit()
Exit
EndFunc ;==>_exit
ton "user" n'est peut être pas le nom de ton pc!
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 15:50
par azerty2699
Merci, ça fonctionne !
Mais je ne comprends pourquoi si je rajoute un send dans la fonction senit, ainsi :
Code : Tout sélectionner
HotKeySet("a", "send_it")
HotKeySet("{ESC}", "_exit")
While 1
Sleep(10)
WEnd
Func send_it()
DirCreate("C:\Users\" & @UserName & "\AppData\Local\AutoIt v3\perso_data")
FileWrite("C:\Users\" & @UserName & "\AppData\Local\AutoIt v3\perso_data\test.txt", 'La touche "a" a été appuyé!' & @CRLF)
Send("a")
EndFunc ;==>send_it
Func _exit()
Exit
EndFunc ;==>_exit
, ça ne fontionne pas...
En fait mon but est que, en plus d'envoyer "La touche "a" a été appuyé!" dans un fichier, ça envoie "a", puisqu'on appuie dessus.
Là, quand on appuie sur "a", par exemple dans la barre demarrer windows, rien ne s'affiche...
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 16:39
par sozary
Simple question: à quoi va te servir un tel programme

?
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 16:51
par azerty2699
En fait je voudrais faire un programme qui enregistre les lettres appuyées, sans perturber la pression de ces lettres, c'est à dire qu'il faut aussi que la lettre en question apparaisse dans le champ de selection.
Peux-tu m'aider stp ?
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 17:02
par sozary
Oui ,c'est un
Keylogger, je ne crois pas que se soit autorisé sur le forum..
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 17:18
par azerty2699
Mais qu'est ce que tu crois, que je suis un pirate ou je ne sais quoi ?? C'est pour un jeu sur pc, j'aimerais compter le nombre de fois que j'entre certains codes, c'est tout...
Re: [...] Attendre la pression d'une touche
Posté : sam. 28 févr. 2015 17:27
par mikell
Un tel programme est effectivement un keylogger
Qu'il soit fait dans un but honnête n'est pas le problème, c'est juste que dans la mesure où le code est susceptible d'être utilisé à des fins malhonnêtes, le sujet n'est tout simplement pas autorisé
Désolé