Problème pour appuyer sur Ctrl et Shift

cs_arkandias Messages postés 16 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 27 juillet 2005 - 25 mai 2005 à 17:09
cs_arkandias Messages postés 16 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 27 juillet 2005 - 26 mai 2005 à 17:23
Bonjour,

J'ai un petit problème depuis 6 mois avec la commande SendKeys.

Il est vrai qu'en faisant "Sendkeys "a"", on envoie "a", et qu'en faisant "Sendkeys {ENTER}", on envoie "Entrer".

Mais comment faire pour taper les touches Ctrl et Shift (sans que ce soit un raccourci, les taper tous seuls) ?

Je n'ai jamais compris et je crois qu'il n'existe aucun {CTRL} ni {SHIFT}.

Pouvez-vous m'aider ?

Merci d'avance

6 réponses

daetips Messages postés 142 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 novembre 2007
25 mai 2005 à 18:29
Tiens voila :

+ = Shift
^ = Control
% = Alt

et ceux qui suivent doivent etre entre des { } (crochets)

BACKSPACE
BREAK
CAPSLOCK
CLEAR
DEL
DELETE
DOWN
END
ENTER
ESC
ESCAPE
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16

Daetips
0
cs_arkandias Messages postés 16 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 27 juillet 2005
25 mai 2005 à 18:36
Non, non, je me doutais que au moisn une personne répondrait ça...

^ et + ne marchent que lors des raccourcis, et je ne veux pas de raccourcis, mais juste taper sur Ctrl ou Shift.

Donc Sendkeys "^" ou Sendkeys "+" ne me fait pas appuyer sur Ctrl ni Shift...
Comment faire ?
0
daetips Messages postés 142 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 novembre 2007
25 mai 2005 à 20:27
Dsl j'avais mal compris :d
Private Const VK_SHIFT = &H10
Private Const VK_RSHIFT = &HA1
Private Const VK_LSHIFT = &HA0
Private Const VK_LCONTROL = &HA2
Private Const VK_RCONTROL = &HA3



Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2


Private Sub Form_Load()
keybd_event VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0


keybd_event VK_RSHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_RSHIFT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0


keybd_event VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0


End Sub

tien ca ca simule l'appui des touches et non pour les racourcis
vk_shift => pour shift
VK_RSHIF => bouton shift de droite
VK_LSHIFT => bouton shift de gauche
VK_LCONTROL => bouton control de gauche
VK_RCONTROL => bouton control de droite

Daetips
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
25 mai 2005 à 20:51
Salut,

Il y a aussi l'API SendMessage. Surtout si tu veux simuler des frappes de touches vers une autre appli. Un tit exemple :

Private Const WM_KEYDOWN As Long = &H100 'pour simuler l'évènement keydown
Private Const WM_KEYUP As Long = &H101 'pour simuler l'évènement keyup


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long


Private Sub Command1_Click()
'ici me.hwnd c'est le handle de l'appli de départ mais tu peux remplacer par le handle de l'appli qui doit recevoir
Call SendMessage(Me.hwnd, WM_KEYDOWN, 17, 0) 'là, ctrl, pour shift c'est 16
End Sub


'pour vérifier que ça marche
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 17 Then MsgBox "CTRL"
End Sub

Je te laisse découvrir le reste.


@+

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
25 mai 2005 à 21:02
Précise un peu ce que tu veux faire là parce que Shift,
a part activer les majuscules ne fait pas grand chose et CTRL non plus
(sauf dans le cas des sélections... ou des raccourcis Windows tel que
copier [CTRL+Insert] ou coller [
MAJ+Insert]).
0
cs_arkandias Messages postés 16 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 27 juillet 2005
26 mai 2005 à 17:23
Tu as raison, ScSami, en fait, j'ai oublié de préciser que je voulais taper CTRL et Shift non pas sur la Form, mais sur le programme que j'execute actuellement.

Autrement dit comme si j'allais sur la fenêtre que je veux, puis je tape Ctrl sur le clavier...

Pour plus de précisions, j'essaie de créer un script qui me permet d'appuyer le plus de fois possible sur Ctrl et Shift, sur un jeu en Flash éxécuté dans IE 6...
0
Rejoignez-nous