Bonjour.
Je cherche, depuis une macro Word en VBA, à pouvoir tester l’état de la touche Verr Num (Num Lock) et éventuellement la modifier.
J’ai essayé plusieurs solutions :
• Pour connaître son état :
Cela semble fonctionner, encore que de façon étrange, puisque j’obtiens True quand la touche est désactivée, et False quand activée !
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.NumLock
• Pour l’activer :
Je mets au début du module :
Puis dans la macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private Declare Function GetKeyState Lib "user32" (ByVal iVirtualKey As Integer) As Long
GetKeyState(vbKeyNumlock) renvoie plus logiquement « 0 » quand Numéro Lock est désactivé, « 1 » quand il est activé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If GetKeyState(vbKeyNumlock) = 0 Then SendKeys "{NUMLOCK}" End If
• Pour la désactiver :
Le problème est que, dans ces deux derniers cas, le résultat est aléatoire. Ça peut marcher un moment, puis cela ne répond plus, la touche n’est pas modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If Not (Application.NumLock) Then ' Si activé. SendKeys "{NUMLOCK}" End If
Quelqu’un aurait-il une solution stable ?
Je suis sur Windows 7, Word 2010.
Merci d’avance.
Pjouv
Partager