Touche inser activée? [Résolu]

Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
- - Dernière réponse : Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
- 4 déc. 2004 à 22:25
Bonjour,
j'aimerai savoir commment on peut connaître l'état de la touche inser. Merci!

Vedlen
Afficher la suite 

15 réponses

Meilleure réponse
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
3
Merci
tu met un timer avec enabled à True et un interval de 100 et un TextBox pour afficher l'état de la touche.

Const VK_INSERT = &H2D

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long

Private Sub Timer1_Timer()
If GetKeyState(VK_INSERT) Then
Text1 = "Touche INSERT activée"
Else
Text1 = "Touche INSERT non activée"
End If
End Sub

Daniel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
thanks ;)
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
..heu.. et comment est-ce qu'on peut activer cette touche? Si je fais

SendKeys "{INSERT}"


ça marche pas..

Vedlen
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
un peu plus compliqué ...

Private Type KeyboardBytes
     kbByte(0 To 255) As Byte
End Type

Const VK_INSERT = &H2D

Dim kbArray  As KeyboardBytes

 Private Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
 Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

Private Sub Command1_Click()
    TurnOn (VK_INSERT)
End Sub

Private Sub Command2_Click()
    TurnOff (VK_INSERT)
End Sub

Private Sub TurnOn(vkKey As Long)
    'Get the keyboard state
    GetKeyboardState kbArray
    'Change a key
    kbArray.kbByte(vkKey) = 1
    'Set the keyboard state
    SetKeyboardState kbArray
End Sub

Private Sub TurnOff(vkKey As Long)
    'Get the keyboard state
    GetKeyboardState kbArray
    'change a key
    kbArray.kbByte(vkKey) = 0
    'set the keyboard state
    SetKeyboardState kbArray
End Sub


Daniel
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
...j'ai testé ça marche pas...
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
ha bon !
j'ai mis les deux avec le timer, pour l'instant la touche est activée, j"appuies sur Command2, il passe à touche non activée, je vérifie ici même sur Codes Sources ...
en effet parfois ça marche mais pas toujours, alors je sais pas pas à quoi c'est dû.
pas d'autres solutions pour l'instant.... sorry !

Daniel
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
ok merci quand même

Vedlen
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
La méthode marche pas pour NT et XP apparemment...
il faut faire un senkey en utilisant Keybd_event.
mais avant il faut activer l'application avec AppActivate.
il n'y a donc plus deux fonctions TurnOn et TurnOff puisque c'est la même qui fait les deux

Const VK_INSERT As Byte = &H2D
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long)

AppActivate ("touche inser activée?")

'Simule Key Press
 keybd_event VK_INSERT, 0, 0, 0

'Simule Key Release
keybd_event VK_INSERT, 0, KEYEVENTF_KEYUP, 0


PS: pour ceux qui vont arriver derrière en disant que c'est eux qui ont trouvé la solution, c'est pas très malin de leur part.

Daniel
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
Super ça marche merci beaucoup :)

Vedlen
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
Super ça marche merci :)

Vedlen
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
vaut mieux 2 fois qu'une ...!

thanks :big)

Daniel
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
lol.. En fait ça marche pas :sad) ... C'est bizar est fait l'état de la touche indique la touche comme étant activée, mais quand je teste en écrivant ça marche pas.... Il faut vraiment appuyer manuellement sur la touche pour que ça prenne effet..

Vedlen
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
ça dépend peut-être de l'application sur laquelle tu travailles, parceque si AppActivate n'a pas marché, le senkey n'a pas été envoyé correctement.
en fait quand tu fais AppActivate, l'application passe au premier plan, ce qui donne une bonne indication si le senkey va marcher ou pas.
peux tu m'en dire plus pour que je puisse tester ?

Daniel
Messages postés
359
Date d'inscription
mardi 14 octobre 2003
Dernière intervention
7 septembre 2009
0
Merci
Justement quand je fais AppActivate elle passe en arrière plan. Parler de tout ça sur MSN serait peut-être plus ergonomique, non? Si possible...
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
comme tu veux, regarde dans ta boîte

Daniel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.