khedhiri
-
8 sept. 2000 à 16:54
cs_Dugnouf
Messages postés8Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 septembre 2010
-
27 avril 2010 à 09:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Dugnouf
Messages postés8Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 septembre 2010 27 avril 2010 à 09:39
Bonjour,
est-ce que quelqu'un à déjà essayé d'envoyer le caractère caret "^".
Selon la doc il faudrait le faire de cette manière :
SendKeys "{^}"
Mais si le clavier suisse romand est activé j'obtiens le caractère "&", et si le clavier français est activé j'obtiens le caractère "6".
Est-ce que quelqu'un a une solution ?
Merci
boudas
Messages postés13Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 8 octobre 2008 8 oct. 2008 à 09:22
bonjour,
Deux petites questions sur SendKeysEx
1: comment déclare t'on "VBRUN.KeyCodeConstants" et "VBRUN.ShiftConstants" en vba ? (au passage, vbExtendedKey As Boolean = False n'est aps reconnu sous Excel...)
2: (et c'est ma question la plus importante) comment envoyer une combinaison de touches à un exe quand le PC est verouillé. (la session est démarrée mais l'utilisateur a vérouillé la session car il a lancé la macro et reviendra quelques heures plus tard)
Pour l'instant, j'utilise "sendkeys" avec l'option attente à true, mais dans ce cas, sendkeys attend le déverouillage du pc avant de s'éxécuter... la macro perd beaucoup de sa valeur ! lol
merci de vos réponses
Aurélien
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 7 avril 2008 à 13:10
Une appli faite maison.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 avril 2008 à 12:08
avec quelle appli joues tu ?
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 7 avril 2008 à 12:00
Et bien moi je ne vois pas trop comment. C'est un peu comme avec pipes, là j'y piges pas grand chose je ne vois pas comment ça peut servir à envoyer mes touches. Ça me désespère là :(
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 avril 2008 à 09:43
bien compris, nul soucis, c'est tout a fait possible de lire ecrire de manière interactive et de jouer ainsi avec des applis console
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 7 avril 2008 à 03:09
Je crois que je me suis mal expliqué. Je ne cherche pas à exécuter un programme mais je veux pouvoir par exemple lui envoyer la touche A si le programme le demande (pour qu'il effectue ce que la touche A doit engendrer).
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 avril 2008 à 23:13
"entrée standard"
par exemple, par defaut, sous applis console, c'est la saisie clavier...
voir MSDN, la doc de ShellExecute(Ex)
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 5 avril 2008 à 15:29
Je ne connais pas StdInput tu sais où je pourrais trouver des information ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 5 avril 2008 à 15:16
c'est pour ça ? plus simple, alors, passes par le StdInput (voir ShellExecuteEx)
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 5 avril 2008 à 15:12
Renfield > Le code fonctionne parfaitement ... mais pas avec un programme en invite de commande (ce que je cherche en fait). Mon problème reste entier ...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 5 avril 2008 à 08:07
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 5 avril 2008 à 01:59
SendKeys c'est bien ... si on a l'application ciblée comme focus actif. J'aimerais avoir une méthode sans ce système de focus. parce :
1 : Les changement de focus à la volée, ça fait pas propre.
2 : Si un programme extérieur se place en focus actif tout s'effondre.
Maintenant y a t il une méthode alternative à SendKeys, je ne sais pas. Si vous savez, merci de m'éclairer :)
nijlak
Messages postés4Date d'inscriptionmercredi 26 mars 2008StatutMembreDernière intervention29 mars 2008 29 mars 2008 à 14:51
J'avais trouvé et cela marche très bien. Mon problème maintenant c'est qu'il appuie pas sur les touches dans mon application en focus (ça marche par contre sur wordpad et autre traitement de texte qui j'ai pris pour les essais).
J'ai entendu dire que c'est possible que ça marche pas quand l'application utilise Direct X. Est cela d'après vous ?
Merci
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 29 mars 2008 à 14:35
En fait, avec VB express, il faut utiliser My.Computer.Keyboard.SendKeys.
Exemple de MSDN avec la caculatrice windows:
Dim ProcID As Integer 'pour recevoir l'ID du processus
' lance l'appli et enregistre le process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
AppActivate(ProcID) 'je vois pas à quoi ca sert, ca marche bien sans chez moi
' envoi des commandes clavier
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' résultat de 22 * 44 = 968.
nijlak
Messages postés4Date d'inscriptionmercredi 26 mars 2008StatutMembreDernière intervention29 mars 2008 28 mars 2008 à 14:33
Bonjours, je programme sur visual basic express 2008, je n'arrive pas a utiliser sendkeys.
Pouvez vous me dire comment elle marche. Il me mette une erreur qui est:
Erreur'SendKeys' est un type et ne peut pas être utilisé en tant qu'expression.
C'est pour un bot, je voudrais qu'il appuit sur F9 puis sur ENTER dans une fenêtre qui sera bien en focus
Je vous remercie
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 3 nov. 2007 à 23:21
Microsoft Word est un un logiciel de traitement de texte de la suite Microsoft Office. Il est payant et nombreux sont ceux qui l'ont dès l'achat de leur ordi.
Si tu ne l'as pas sur ton ordi, télécharge openoffice (tu peux trouver Open Office sur google) qui fait l'équivalent.
Si tu as des problèmes après cela, rends-toi sur un forum approprié (commentcamarche.net par exemple) car là nous sommes Hors Sujet.
@+
mti.
cs_style77
Messages postés3Date d'inscriptionmercredi 31 octobre 2007StatutMembreDernière intervention13 mars 2011 3 nov. 2007 à 17:54
merci mti mais word on le tape dans google ou il est sur notre ordi?
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 31 oct. 2007 à 15:58
A savoir que s'il n'y a pas de raccourci, beaucoup de personnes risquent de ne pas voir ton signe. Ainsi, j'ai posté un sourire de wingdings qui apparaît comme un point d'interrogation à la fin de mon précédent message. Bref, les polices, à la base, c'est du texte, ne l'oublie pas.
Et sinon je vois moyennement ce que cela fait sur cette source.
@+
mti.
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 31 oct. 2007 à 15:56
Euh, déjà, on apprend à écrire français si on espère une réponse (et non que je la che un com'ssur comment faire des trucs).
Sur Word tu vas sur Insertion, Caractères spéciaux, et tu choisis webdings ou wingdings. Là tu peux choisir ton signe ou émoticone et la touche de raccourci (Alt+nombre) s'affichera en bas à droite.
S'il ne s'affiche pas c'est que ce n'est pas un signe standard donc le copier/coller reste la seule solution ?
@+
mti.
cs_style77
Messages postés3Date d'inscriptionmercredi 31 octobre 2007StatutMembreDernière intervention13 mars 2011 31 oct. 2007 à 11:04
Escuser moi mais on fait comment pour faire des petit coeur des soleil des trucs comme sa avec ctrl 32 si vous savez pouvez vous la cher un com's avec toute la liste merci
revanger
Messages postés63Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention31 juillet 2007 28 avril 2007 à 19:27
Oui, c'est un VB mais 2005 je crois. Enfin de puis j'ai formaté ^^
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 28 avril 2007 à 17:22
Revanger ==> peut-être n'as-tu pas VB 6 ?
fouadma2
Messages postés1Date d'inscriptionvendredi 27 avril 2007StatutMembreDernière intervention27 avril 2007 27 avril 2007 à 12:49
c'est bien continue....
revanger
Messages postés63Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention31 juillet 2007 25 févr. 2007 à 00:54
Je suis obligé d'utiliser My.Computer.Keyboard.SendKeys("{CAPSLOCK}")
car sendkeys VB ne reconnait pas.
Et même avec My.Computer.Keyboard.SendKeys("{CAPSLOCK}") ça marche pas vraiment, mais il le reconnait.
Quelqu'un peut m'aider ?
diablamanshadow
Messages postés419Date d'inscriptionlundi 30 août 2004StatutMembreDernière intervention28 janvier 2008 9 nov. 2006 à 09:23
bon je viens mettre mon grain de sel je cite :
'Il va affichez coucou dans la fenêtre qui a le focus
donc ma question est comment est ce que l'on peut lister les fennetres en choisir une , taper son texte faire sur un bouton ok et sa envoie le focus a la fennetre selectionnee et y tape le texte ^^
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 21 juil. 2006 à 21:01
je viens de tester SendKeys "^+{ESC}+{DOWN}" et ca ne martche pas.
Le mieux est encore de faire Shell "C:\windows\system32\taskmgr.exe", vbNormalFocus
mpo007
Messages postés12Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 7 mars 2009 21 juil. 2006 à 20:08
je veux te couriger monsieur "je sais tout" SendKeys "{(^)+(%)+(DEL)}" ne marchera pas
il faut éssayer autre chose.
pour fair un ctrl+alt+suppr par SendKeys tu dois faire
SendKeys "^+{ESC}+{DOWN}"
cs_mti
Messages postés51Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention29 mars 2008 14 nov. 2005 à 18:47
soldier8514: Si tu lis bien tu comprends qu'il faut mettre
SendKeys "{(^)+(%)+(DEL)}"
Tu pourrai lire avant de poster, ca va que nix est laxiste et qu'il ne t'as pas supprimé ton message ni envoyé de MP (je suppose)
Parce que les commentaires inutiles... y en a beaucoup!!!!!
Sinon tu peux aussi faire shell("C:\...\taskmgr.exe") etc...
A bon entendeur, salut!
jhon_smith
Messages postés40Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention30 mars 2007 28 janv. 2005 à 11:10
c'est très cool, merci à tous , je veux juste savoir à prpos de la touche windows (entre ctrl et alt) , c'est quoi son code ? merci d'avance !!
soldier8514
Messages postés295Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention24 janvier 20141 7 janv. 2005 à 17:31
c bien beau tout çà mais qu'en est il pour la commande CTRL+ALT+ Supp ??????????????????
:)
0sez
Messages postés2Date d'inscriptiondimanche 8 septembre 2002StatutMembreDernière intervention11 septembre 2002 9 sept. 2002 à 12:46
Bon, je me suis pas fait chier, j'ai fait un copier/coller de l'aide de VB. En esperant que ca reponde a qq questions.
Key Code
RET.ARR {BACKSPACE}, {BS} ou {BKSP}
ATTN {BREAK}
VERR.MAJ {CAPSLOCK}
SUPPR {DELETE} ou {DEL}
BAS {DOWN}
FIN {END}
ENTRÉE {ENTER}ou ~
ÉCHAP {ESC}
AIDE {HELP}
ORIGINE {HOME}
INSERTION {INSERT} ou {INS}
GAUCHE {LEFT}
VERR.NUM {NUMLOCK}
PG.SUIV {PGDN}
PG.PRÉC {PGUP}
IMPR. ÉCRAN {PRTSC}
DROITE {RIGHT}
ARRÊT.DÉFIL {SCROLLLOCK}
TAB {TAB}
HAUT {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
ect ect ...
MAJ +
CTRL ^
ALT %
Pour indiquer que les touches MAJ, CTRL et ALT doivent être maintenues enfoncées pendant que d'autres touches sont utilisées, mettez le code des touches entre parenthèses. Par exemple, pour que la touche MAJ soit maintenue enfoncée pendant que les touches E et C sont utilisées, indiquez "+(EC)". Pour que la touche MAJ soit maintenue enfoncée en même temps que la touche E et que l'utilisateur appuie ensuite sur la touche C sans enfoncer la touche MAJ, utilisez "+EC".
Pour indiquer qu'une touche doit être répétée, employez la forme {touche nombre}, sans oublier d'insérer un espace entre touche et nombre. Par exemple, {LEFT 42} signifie que la touche GAUCHE doit être enfoncée 42 fois et {h 10} qu'il faut appuyer 10 fois sur la touche H.
cs_Nil
Messages postés85Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention31 décembre 2002 1 juil. 2002 à 10:09
SendKeys est une instruction qui est comprise dans VisualBASIC, il n'y a donc pas de code associé. Pour connaitre tout sur le SendKeys, regardez dans l'aide de VisualBASIC.
J'aimerais savoir si il existe une API permettant de définir l'état d'une touche de clavier. (l'inverse de GetAsyncKeyState)
cs_SHIVA
Messages postés97Date d'inscriptionvendredi 28 décembre 2001StatutMembreDernière intervention 1 décembre 2003 19 janv. 2002 à 12:50
27 avril 2010 à 09:39
est-ce que quelqu'un à déjà essayé d'envoyer le caractère caret "^".
Selon la doc il faudrait le faire de cette manière :
SendKeys "{^}"
Mais si le clavier suisse romand est activé j'obtiens le caractère "&", et si le clavier français est activé j'obtiens le caractère "6".
Est-ce que quelqu'un a une solution ?
Merci
8 oct. 2008 à 09:22
Deux petites questions sur SendKeysEx
1: comment déclare t'on "VBRUN.KeyCodeConstants" et "VBRUN.ShiftConstants" en vba ? (au passage, vbExtendedKey As Boolean = False n'est aps reconnu sous Excel...)
2: (et c'est ma question la plus importante) comment envoyer une combinaison de touches à un exe quand le PC est verouillé. (la session est démarrée mais l'utilisateur a vérouillé la session car il a lancé la macro et reviendra quelques heures plus tard)
Pour l'instant, j'utilise "sendkeys" avec l'option attente à true, mais dans ce cas, sendkeys attend le déverouillage du pc avant de s'éxécuter... la macro perd beaucoup de sa valeur ! lol
merci de vos réponses
Aurélien
7 avril 2008 à 13:10
7 avril 2008 à 12:08
7 avril 2008 à 12:00
7 avril 2008 à 09:43
7 avril 2008 à 03:09
6 avril 2008 à 23:13
par exemple, par defaut, sous applis console, c'est la saisie clavier...
voir MSDN, la doc de ShellExecute(Ex)
5 avril 2008 à 15:29
5 avril 2008 à 15:16
5 avril 2008 à 15:12
5 avril 2008 à 08:07
http://www.vbfrance.com/codes/SENDKEYSEX-SIMULER-TOUCHE-DANS-FENETRE-PRECISE_41974.aspx
5 avril 2008 à 01:59
1 : Les changement de focus à la volée, ça fait pas propre.
2 : Si un programme extérieur se place en focus actif tout s'effondre.
Maintenant y a t il une méthode alternative à SendKeys, je ne sais pas. Si vous savez, merci de m'éclairer :)
29 mars 2008 à 14:51
J'ai entendu dire que c'est possible que ça marche pas quand l'application utilise Direct X. Est cela d'après vous ?
Merci
29 mars 2008 à 14:35
Tu peux trouver cela dans la MSDN:
http://msdn2.microsoft.com/fr-fr/library/fx2k26ca(VS.80).aspx
En fait, avec VB express, il faut utiliser My.Computer.Keyboard.SendKeys.
Exemple de MSDN avec la caculatrice windows:
Dim ProcID As Integer 'pour recevoir l'ID du processus
' lance l'appli et enregistre le process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
AppActivate(ProcID) 'je vois pas à quoi ca sert, ca marche bien sans chez moi
' envoi des commandes clavier
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' résultat de 22 * 44 = 968.
28 mars 2008 à 14:33
Pouvez vous me dire comment elle marche. Il me mette une erreur qui est:
Erreur'SendKeys' est un type et ne peut pas être utilisé en tant qu'expression.
C'est pour un bot, je voudrais qu'il appuit sur F9 puis sur ENTER dans une fenêtre qui sera bien en focus
Je vous remercie
3 nov. 2007 à 23:21
Si tu ne l'as pas sur ton ordi, télécharge openoffice (tu peux trouver Open Office sur google) qui fait l'équivalent.
Si tu as des problèmes après cela, rends-toi sur un forum approprié (commentcamarche.net par exemple) car là nous sommes Hors Sujet.
@+
mti.
3 nov. 2007 à 17:54
31 oct. 2007 à 15:58
Et sinon je vois moyennement ce que cela fait sur cette source.
@+
mti.
31 oct. 2007 à 15:56
Sur Word tu vas sur Insertion, Caractères spéciaux, et tu choisis webdings ou wingdings. Là tu peux choisir ton signe ou émoticone et la touche de raccourci (Alt+nombre) s'affichera en bas à droite.
S'il ne s'affiche pas c'est que ce n'est pas un signe standard donc le copier/coller reste la seule solution ?
@+
mti.
31 oct. 2007 à 11:04
28 avril 2007 à 19:27
28 avril 2007 à 17:22
27 avril 2007 à 12:49
25 févr. 2007 à 00:54
car sendkeys VB ne reconnait pas.
Et même avec My.Computer.Keyboard.SendKeys("{CAPSLOCK}") ça marche pas vraiment, mais il le reconnait.
Quelqu'un peut m'aider ?
9 nov. 2006 à 09:23
'Il va affichez coucou dans la fenêtre qui a le focus
donc ma question est comment est ce que l'on peut lister les fennetres en choisir une , taper son texte faire sur un bouton ok et sa envoie le focus a la fennetre selectionnee et y tape le texte ^^
21 juil. 2006 à 21:01
Le mieux est encore de faire Shell "C:\windows\system32\taskmgr.exe", vbNormalFocus
21 juil. 2006 à 20:08
il faut éssayer autre chose.
pour fair un ctrl+alt+suppr par SendKeys tu dois faire
SendKeys "^+{ESC}+{DOWN}"
14 nov. 2005 à 18:47
SendKeys "{(^)+(%)+(DEL)}"
Tu pourrai lire avant de poster, ca va que nix est laxiste et qu'il ne t'as pas supprimé ton message ni envoyé de MP (je suppose)
Parce que les commentaires inutiles... y en a beaucoup!!!!!
Sinon tu peux aussi faire shell("C:\...\taskmgr.exe") etc...
A bon entendeur, salut!
28 janv. 2005 à 11:10
7 janv. 2005 à 17:31
:)
9 sept. 2002 à 12:46
Key Code
RET.ARR {BACKSPACE}, {BS} ou {BKSP}
ATTN {BREAK}
VERR.MAJ {CAPSLOCK}
SUPPR {DELETE} ou {DEL}
BAS {DOWN}
FIN {END}
ENTRÉE {ENTER}ou ~
ÉCHAP {ESC}
AIDE {HELP}
ORIGINE {HOME}
INSERTION {INSERT} ou {INS}
GAUCHE {LEFT}
VERR.NUM {NUMLOCK}
PG.SUIV {PGDN}
PG.PRÉC {PGUP}
IMPR. ÉCRAN {PRTSC}
DROITE {RIGHT}
ARRÊT.DÉFIL {SCROLLLOCK}
TAB {TAB}
HAUT {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
ect ect ...
MAJ +
CTRL ^
ALT %
Pour indiquer que les touches MAJ, CTRL et ALT doivent être maintenues enfoncées pendant que d'autres touches sont utilisées, mettez le code des touches entre parenthèses. Par exemple, pour que la touche MAJ soit maintenue enfoncée pendant que les touches E et C sont utilisées, indiquez "+(EC)". Pour que la touche MAJ soit maintenue enfoncée en même temps que la touche E et que l'utilisateur appuie ensuite sur la touche C sans enfoncer la touche MAJ, utilisez "+EC".
Pour indiquer qu'une touche doit être répétée, employez la forme {touche nombre}, sans oublier d'insérer un espace entre touche et nombre. Par exemple, {LEFT 42} signifie que la touche GAUCHE doit être enfoncée 42 fois et {h 10} qu'il faut appuyer 10 fois sur la touche H.
1 juil. 2002 à 10:09
J'aimerais savoir si il existe une API permettant de définir l'état d'une touche de clavier. (l'inverse de GetAsyncKeyState)
19 janv. 2002 à 12:50
27 mars 2001 à 16:33
20 févr. 2001 à 14:42
Merci d'avance,
† Manthis †
9 nov. 2000 à 23:57
8 sept. 2000 à 16:54
Pouvez vous me l'envoyer ?
Merci d'avance