Je voulais savoir si il existait un API pour vérifier les touches enfoncées sur le clavier, et si oui ben me le donner evidemment
Merci d'avance
Je voulais savoir si il existait un API pour vérifier les touches enfoncées sur le clavier, et si oui ben me le donner evidemment
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Merchi vais essayer ca tout de suite et je dis si ca me va
Code : Sélectionner tout - Visualiser dans une fenêtre à part If GetAsyncKeyState(&H10) <> 0 then msgbox "Cucu"
Je saute de joie lol, ca marche encore mieux que je le pensais !!!!!!
Merci merci merci
Si le véhicule te plaît,
alors voici le carburant.
Symbolic constant Hexadecimal value Mouse or keyboard equivalent
VK_LBUTTON 01 Left mouse button
VK_RBUTTON 02 Right mouse button
VK_CANCEL 03 Control-break processing
VK_MBUTTON 04 Middle mouse button on a three-button mouse
— 05–07 Undefined
VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key
— 0A–0B Undefined
VK_CLEAR 0C CLEAR key
VK_RETURN 0D ENTER key
— 0E–0F Undefined
VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_MENU 12 ALT key
VK_PAUSE 13 PAUSE key
VK_CAPITAL 14 CAPS LOCK key
— 15–19 Reserved for Kanji systems
— 1A Undefined
VK_ESCAPE 1B ESC key
— 1C–1F Reserved for Kanji systems
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_SELECT 29 SELECT key
2A OEM-specific
VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key
VK_INSERT 2D INS key
VK_DELETE 2E DEL key
VK_HELP 2F HELP key
3A–40 Undefined
VK_LWIN 5B Left Windows key on a Microsoft Natural Keyboard
VK_RWIN 5C Right Windows key on a Microsoft Natural Keyboard
VK_APPS 5D Applications key on a Microsoft Natural Keyboard
5E–5F Undefined
VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_MULTIPLY 6A Multiply key
VK_ADD 6B Add key
VK_SEPARATOR 6C Separator key
VK_SUBTRACT 6D Subtract key
VK_DECIMAL 6E Decimal key
VK_DIVIDE 6F Divide key
VK_F1 70 F1 key
VK_F2 71 F2 key
VK_F3 72 F3 key
VK_F4 73 F4 key
VK_F5 74 F5 key
VK_F6 75 F6 key
VK_F7 76 F7 key
VK_F8 77 F8 key
VK_F9 78 F9 key
VK_F10 79 F10 key
VK_F11 7A F11 key
VK_F12 7B F12 key
VK_F13 7C F13 key
VK_F14 7D F14 key
VK_F15 7E F15 key
VK_F16 7F F16 key
VK_F17 80H F17 key
VK_F18 81H F18 key
VK_F19 82H F19 key
VK_F20 83H F20 key
VK_F21 84H F21 key
VK_F22 85H F22 key
VK_F23 86H F23 key
VK_F24 87H F24 key
88–8F Unassigned
VK_NUMLOCK 90 NUM LOCK key
VK_SCROLL 91 SCROLL LOCK key
VK_LSHIFT 0xA0 Left SHIFT
VK_RSHIFT 0xA1 Right SHIFT
VK_LCONTROL 0xA2 Left CTRL
VK_RONTROL 0xA3 Right CTRL
VK_LMENU 0xA4 Left ALT
VK_RMENU 0xA5 Right ALT
BA-C0 OEM-specific; reserved. See following tables.
C1-DA Unassigned
DB-E2 OEM-specific; reserved. See following tables.
E3 – E4 OEM-specific
E5 Unassigned
E6 OEM-specific
E7-E8 Unassigned
E9-F5 OEM-specific
VK_ATTN F6 ATTN key
VK_CRSEL F7 CRSEL key
VK_EXSEL F8 EXSEL key
VK_EREOF F9 Erase EOF key
VK_PLAY FA PLAY key
VK_ZOOM FB ZOOM key
VK_NONAME FC Reserved for future use
VK_PA1 FD PA1 key
VK_OEM_CLEAR FE CLEAR key
OEMs should make special note of the VK key ranges reserved for OEM-specific use: 2A, DB–E4, E6, and E9–F5.
In addition to the VK key assignments in the previous table, Microsoft has assigned the following OEM VK keys.
Symbolic constant Hexadecimal value Mouse or keyboard equivalent
VK_OEM_SCROLL 0x91
VK_OEM_1 0xBA ";:" for US
VK_OEM_PLUS 0xBB "+" any country/region
VK_OEM_COMMA 0xBC "," any country/region
VK_OEM_MINUS 0xBD "-" any country/region
VK_OEM_PERIOD 0xBE "." any country/region
VK_OEM_2 0xBF "/?" for US
VK_OEM_3 0xC0 "`~" for US
VK_OEM_4 0xDB "[{" for US
VK_OEM_5 0xDC "\|" for US
VK_OEM_6 0xDD "]}" for US
VK_OEM_7 0xDE "'"" for US
VK_OEM_8 0xDF
VK_OEM_AX 0xE1 AX key on Japanese AX keyboard
VK_OEM_102 0xE2 "<>" or "\|" on RT 102-key keyboard
For East Asian Input Method Editors (IMEs) the following additional virtual keyboard definitions must be observed.
Symbolic constant Hexadecimal value Description
VK_DBE_ALPHANUMERIC 0x0f0 Changes the mode to alphanumeric
VK_DBE_KATAKANA 0x0f1 Changes the mode to Katakana
VK_DBE_HIRAGANA 0x0f2 Changes the mode to Hiragana
VK_DBE_SBCSCHAR 0x0f3 Changes the mode to single-byte characters
VK_DBE_DBCSCHAR 0x0f4 Changes the mode to double-byte characters
VK_DBE_ROMAN 0x0f5 Changes the mode to Roman characters
VK_DBE_NOROMAN 0x0f6 Changes the mode to non-Roman characters
VK_DBE_ENTERWORDREGISTERMODE 0x0f7 Activates the word registration dialog box
VK_DBE_ENTERIMECONFIGMODE 0x0f8 Activates a dialog box for setting up an IME environment
VK_DBE_FLUSHSTRING 0x0f9 Deletes the undetermined string without determining it
VK_DBE_CODEINPUT 0x0fa Changes the mode to code input
VK_DBE_NOCODEINPUT 0x0fb Changes the mode to no-code input
VK_DBE_DETERMINESTRING 0x0fc
VK_DBE_ENTERDLGCONVERSIONMODE 0x0fd
OEMs should not use the unassigned portions of the VK mapping tables. Microsoft will assign these values in the future. If OEMs require additional VK mappings, they should reuse some of the current OEM and vendor-specific assignments.
Ingh dis moi pour ma culture perso te sers tu de :
VK_SNAPSHOT 2C PRINT SCREEN key
N'y a-t-il pas de conflit avec windows ?
As tu choisi une autre touche ou combinaison de touches ?
Je passe la doc à titre d'information complémentaire
mais personnellement je n'utilise que la détection de 3 touches de base ; je ne saurais donc te répondre.
Tu as bien dis détecter, c'est donc que tu ne détourne pas les touches de leur fonction...
Si tu détectes un screenprint, tu pourras lancer une procédure mais si tu ne fais rien d'autre il fais quand même le scrprt...
Non, je ne les détourne pas :
la première combinaison permet seulement de stopper mon appli
qui est lancée avec Windows (Shift Echap),
Comme la procédure principale est une boucle
Do-Loop, la seconde combinaison exécute seulement
l'ouverture du form de l'appli.
C'est tout - Me contente de peu, moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If GetAsyncKeyState(vbKeySnapshot) <> 0 Then Clipboard.Clear MsgBox "Screenshot :)" End If
Par contre ... Faire un Do Loop ca bouffe toutes les ressources system y a pas de solution ? :/
Oui ma grenouille GetAsyncKeyState te permet de savoir au moment de l'appel de la fonction si une touche a été appuyée. Tu n'interceptes pas l'évènement. Stricto sensu cela ne sert pas pour bloquer l'effet de printscreen sauf à timer comme un fou sur getasynckeystate. pour intercepter l'évènement tu dois faire un hook et un callback
Merci Bidou, je saisi mieux maintenant !
Parcontre je serais curieux de savoir comment notre amis va faire pour faire la veille permanente des touches enfoncées ???
un do loop dans le sub main ? mais bonjour la gourmandise !
Si t'as une meilleure solution je t'écouteEnvoyé par SpaceFrog
Ben non justement c'est pour cela que ça m'intéresse...
Peut être avec une pause dans l'attente d'un touche puis test de la touche ? Le tout dans une boucle permanente en attente de la touche break ?
Faut que ca marche meme quand la form est inactive, avec l'API pas de probleme mais on peut pas faire un KeyPress car il faut que la form soit activée pour ca.
J'ai pas trop compris ton idée CrôaCrôa, essaie la et si ca marche dis le moi
Merci
Sous Windows XP (Windows 2K aussi) lorsqu'on fait ctrl+alt+suppr, on peut voir l'utilisation du CPU.
Suis je bete ? En mettant un Do Loop dans le main l'utilisation CPU était a 100% constament (g un Athlon XP 1800+) et la j'ai eu l'idée génialissime (mais qui aurait pu me venir avant par toutatis) de mettre mon code dans un Timer a interval 20 millisecondes et maintenant l'utilisation CPU ne monte pas par rapport à quand mon application est inactive (enfin si, j'avoue ca monte de 2% lol)
Voila je crois que je vais me faire un joli petit programme de screenshot avec ca
Merci tout le monde.
voilà avec ça l'utilisation du cpu ne changera pas, l'interval du timer est à 1.
Parcontre moi j'aimerai faire un prog de stat de touches appuyez (mdrrr l'idée super génial)
bon, bref, en fait je voudrai faire un site avec des comptes utilisateur et faire le gars qui a appuyé sur le plus de touche. Sauf que pour éviter que les gens trichent (laisser une gomme sur une touche avant d'aller au dodo) j'ai mi que si la touche appuyé est la même que la touche précédente alors ça compté pas. Mais maintenant si un gars tape google, ben ça ne comptera qu'une seul fois le o. c'est pas très embetant mais quand même.
Alors 2 questions, y'a pas un évènement qui se déclancherai lors de l'appui d'une touche?
et comment détecter les touches répété par un long appui de la même touche?
lol voilàmerci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub Timer1_Timer() Dim i As Integer For i = 0 To 255 keyhit = GetAsyncKeyState(i) If keyhit = -32767 Then KeyActived (i) Exit Sub ' speede plus ... attends une nouvelle touche End If End If DoEvents Next i End Sub Function KeyActived(KeyNumber As Integer) As String If (preckey <> KeyNumber) Then touche(KeyNumber) = touche(KeyNumber) + 1 Text1.Text = KeyNumber preckey = KeyNumber End If End Function
Est-ce-qu'il serait possible que vous developpiez ce dont vous avez commencer a parler, Bidou, et Space Frog, c'est à dire les hooks, et les Callback.
En effet, je voudrai faire un hook sur mon clavier, mais je ne sais pas comment faire. Je sais qu'il faut utiliser l'API SetWindowsHook, mais, je ne sais pas comment celle-ci marche. Vos exemples et commentaires seront les biens venus.
1) Evenement pour l'appui de touches : KeyDownEnvoyé par Mister
2) Tu prend un booléen qui tu initialise a true dans le keypress, et tu ne compte le keypress que si le booléen est a false. Dans le KeyUp, tu met le booléen a false
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager