
Merci beaucoupA ton service camarade![]()

Regarde ce que j'ai réussie a faire
il faut dire que c'étais un très bon exemple

Cependant tu conviendras que il n’est pas encore bien au point
par exemple quand tu appuie sur les touches Ctrl gauche, Alt, Alt Gr, Ctrl droite
et bien il renvoie plusieurs touche

Bien, donc je m'en suis inspiré enfin oui et non
pour mon programme de détection de clique souris et d'appuie clavier
Mais je t'avoue que j'ai mis un bout de temps car j'ai du ruser pour qu'il ne me renvoie qu'une seule touche à la fois
Bien cella étant dit, cella fonctionne plutôt pas mal sauf que dans le dernier exemple du code
Quand tu mets les deux fonctions en même temps dans une boucle
sa ne marche pas toujours du premier coup
Code : Tout sélectionner
; programme réaliser par monsieur dieppedalle david le 24 mars 2011
;-----------------------------------------------------------Pour le clavier:---------------------------------------------------------------------------------------------------------
; Le Mode peut être entre 1 et 5, sinon si différent de 1, 2, 3, 4 ou 5, le mode 1 sera appliquer par défaut
;
; 1 = Renvoie uniquement le nom de la touche presser (Mode par défaut)
; 2 = Renvoie le nom ainsi que le code de la touche presser
; 3 = Renvoie le nom ainsi que le code de la touche presser sous la forme Hexa
; 4 = Renvoie uniquement le code de la touche presser
; 5 = Renvoie uniquement le code de la touche presser mais sous la forme Hexa
; Syntaxe: Touche_presser$ = GetKeyboardKeyPressed(Mode)
; La commande doit être placer a l'intérieur d'une boucle quelconque pour fonctionner correctement
; ou sinon celle-ci sera exécuter qu'une seule fois et ne renverra rien sauf si une touche est déjà enfoncer
; Normalement, toutes les touches du clavier son gérer !
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;---------------------------------------------------------------Pour la souris:-----------------------------------------------------------------------------------------------------
; Le Mode peut être entre 1 et 5, sinon si différent de 1, 2, 3, 4 ou 5, le mode 1 sera appliquer par défaut
;
; 1 = Renvoie uniquement le nom du clique presser (Mode par défaut)
; 2 = Renvoie le nom ainsi que le code du clique presser
; 3 = Renvoie le nom ainsi que le code du clique presser sous la forme Hexa
; 4 = Renvoie uniquement le code du clique presser
; 5 = Renvoie uniquement le code du clique presser mais sous la forme Hexa
; Syntaxe: Clique_Souris$ = GetMouseKeyPressed(Mode)
; La commande doit être placer a l'intérieur d'une boucle quelconque pour fonctionner correctement
; ou sinon celle-ci sera exécuter qu'une seule fois et ne renverra rien sauf si un clique est déjà enfoncer
; Normalement, la plupart des cliques de la souris son gérer, mais pas tous !
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Procedure.s GetKeyboardKeyPressed(Mode)
Buffer$ = ""
For Touche = 0 To 254
Cle_Touche = GetAsyncKeyState_(Touche)
If Cle_Touche = - 32767
Buffer$ + Str(Touche) + "|"
If Touche > 64 And Touche < 91 ; de A à Z
Touche$ = Chr(Touche)
ElseIf Touche = 27
Touche$ = "Echap"
ElseIf Touche = 32
Touche$ = "Espace"
ElseIf Touche > 111 And Touche < 124 ; de F1 a F12
Touche$ = "F" + Str(Touche - 111)
ElseIf Touche = 44
Touche$ = "Impr écran"
ElseIf Touche = 45
Touche$ = "Inser"
ElseIf Touche = 46
Touche$ = "Suppr"
ElseIf Touche = 36
Touche$ = "Flèche diagonnale haut gauche"
ElseIf Touche = 35
Touche$ = "Fin"
ElseIf Touche = 19
Touche$ = "Pause-Attn"
ElseIf Touche = 145
Touche$ = "Arrêt Défil"
ElseIf Touche > 47 And Touche < 58 ; de 0 à 9
Touche$ = Str(Touche - 48)
ElseIf Touche > 95 And Touche < 106 ; pad numérique de 0 à 9
Touche$ = "Pad " + Str(Touche - 96)
ElseIf Touche = 222
Touche$ = "²"
ElseIf Touche = 219
Touche$ = ")"
ElseIf Touche = 187
Touche$ = "="
ElseIf Touche = 8
Touche$ = "Retour arrière"
ElseIf Touche = 9
Touche$ = "Tabulation Horizontal"
ElseIf Touche = 20
Touche$ = "Majuscule Cadena"
ElseIf Touche = 160
Touche$ = "Majuscule flèche gauche"
ElseIf Touche = 162
Touche$ = "Ctrl gauche"
ElseIf Touche = 91
Touche$ = "Appel du menue de windows"
ElseIf Touche = 93
Touche$ = "Appel du menue de la souris"
ElseIf Touche = 164
Touche$ = "Alt"
ElseIf Touche = 226
Touche$ = ">"
ElseIf Touche = 221
Touche$ = "¨"
ElseIf Touche = 186
Touche$ = "$"
ElseIf Touche = 192
Touche$ = "ù"
ElseIf Touche = 220
Touche$ = "*"
ElseIf Touche = 188
Touche$ = ","
ElseIf Touche = 190
Touche$ = ";"
ElseIf Touche = 191
Touche$ = ":"
ElseIf Touche = 223
Touche$ = "!"
ElseIf Touche = 161
Touche$ = "Majuscule flèche droite"
ElseIf Touche = 33
Touche$ = "Flèche arrètte haut"
ElseIf Touche = 34
Touche$ = "Flèche arrètte bas"
ElseIf Touche = 163
Touche$ = "Ctrl droite"
ElseIf Touche = 165
Touche$ = "Alt Gr"
ElseIf Touche = 37
Touche$ = "Flèche gauche"
ElseIf Touche = 38
Touche$ = "Flèche haut"
ElseIf Touche = 39
Touche$ = "Flèche droite"
ElseIf Touche = 40
Touche$ = "Flèche bas"
ElseIf Touche = 110
Touche$ = "Pad Suppr"
ElseIf Touche = 13
Touche$ = "Entrer"
ElseIf Touche = 106
Touche$ = "Pad Multiplication"
ElseIf Touche = 107
Touche$ = "Pad Addition"
ElseIf Touche = 109
Touche$ = "Pad soustraction"
ElseIf Touche = 111
Touche$ = "Pad Division"
ElseIf Touche = 144
Touche$ = "Verr num"
ElseIf Touche = 172
Touche$ = "Internet"
ElseIf Touche = 180
Touche$ = "Mail"
ElseIf Touche = 174
Touche$ = "Sons -"
ElseIf Touche = 175
Touche$ = "Sons +"
ElseIf Touche = 177
Touche$ = "Lecture reculer"
ElseIf Touche = 178
Touche$ = "Lecture stop"
ElseIf Touche = 179
Touche$ = "Lecture / pause"
ElseIf Touche = 176
Touche$ = "Lecture avencer"
EndIf
If Touche <> 16 And Touche <> 17 And Touche <> 18 And Touche <> 1 And Touche <> 2 And Touche <> 4
If Buffer$ <> "17|18|162|"
If Mode = 1
Touche_presser$ = Touche$
ElseIf Mode = 2
Touche_presser$ = Touche$ + " | " + Str(Touche)
ElseIf Mode = 3
Touche_presser$ = Touche$ + " | " + "$" + RSet(Hex(Touche), 2, "0")
ElseIf Mode = 4
Touche_presser$ = Str(Touche)
ElseIf Mode = 5
Touche_presser$ = "$" + RSet(Hex(Touche), 2, "0")
Else
Touche_presser$ = Touche$
EndIf
ElseIf Buffer$ = "17|18|162|"
If Mode = 1
Touche_presser$ = "Alt Gr"
ElseIf Mode = 2
Touche_presser$ = "Alt Gr" + " | " + Str(165)
ElseIf Mode = 3
Touche_presser$ = "Alt Gr" + " | " + "$" + RSet(Hex(165), 2, "0")
ElseIf Mode = 4
Touche_presser$ = Str(165)
ElseIf Mode = 5
Touche_presser$ = "$" + RSet(Hex(165), 2, "0")
Else
Touche_presser$ = "Alt Gr"
EndIf
EndIf
EndIf
EndIf
Next Touche
ProcedureReturn Touche_presser$
EndProcedure
Procedure.s GetMouseKeyPressed(Mode)
For Clique = 0 To 10
Cle_Clique = GetAsyncKeyState_(Clique)
If Cle_Clique = - 32767
If Clique = 1
Clique$ = "Clique droit"
ElseIf Clique = 2
Clique$ = "Clique gauche"
ElseIf Clique = 4
Clique$ = "Clique centre"
ElseIf Clique = 5
Clique$ = "Clique Précédent"
ElseIf Clique = 6
Clique$ = "Clique Suivent"
EndIf
If Mode = 1
Clique_Souris$ = Clique$
ElseIf Mode = 2
Clique_Souris$ = Clique$ + " | " + Str(Clique)
ElseIf Mode = 3
Clique_Souris$ = Clique$ + " | " + "$" + RSet(Hex(Clique), 2, "0")
ElseIf Mode = 4
Clique_Souris$ = Str(Clique)
ElseIf Mode = 5
Clique_Souris$ = "$" + RSet(Hex(Clique), 2, "0")
Else
Clique_Souris$ = Clique$
EndIf
EndIf
Next
ProcedureReturn Clique_Souris$
EndProcedure
Repeat
Touche_presser$ = GetKeyboardKeyPressed(1)
Until Touche_presser$ > ""
Debug Touche_presser$
; Repeat
; Clique_Souris$ = GetMouseKeyPressed(1)
; Until Clique_Souris$ > ""
;
; Debug Clique_Souris$
; Repeat
; Touche_presser$ = GetKeyboardKeyPressed(1)
; Clique_Souris$ = GetMouseKeyPressed(1)
; Delay(1)
; Until Touche_presser$ > "" Or Clique_Souris$ > ""
;
; Debug Touche_presser$
; Debug Clique_Souris$