begin process at 2012 02 14 20:21:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Question rapide, forcer une touche clavier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Question rapide, forcer une touche clavier

lundi 14 novembre 2005 à 20:00:34 | Question rapide, forcer une touche clavier

sampar

Bonjour à tous,

J'aimerais pouvoir faire un petit programme pouvant tapper une touche à ma place à tout les x secondes.

L'utilation d'un timer n'est pas un mystère pour moi, mais comment dire au programme d'appuyer sur une touche pour moi? Et puis, (facultatif), comment forcer un alt+tab par exemple? ou shift+X, etc?


Merci à tous
lundi 14 novembre 2005 à 20:15:42 | Re : Question rapide, forcer une touche clavier

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Regarde dans l'aide + forum + sources la fonction SendKeys

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
mardi 15 novembre 2005 à 06:33:45 | Re : Question rapide, forcer une touche clavier

jeanmarc

Réponse acceptée !

Bonjour,
Exemple de la méthode "SendKeys".
Dim Fso, path, fichier, fichiers, WshShell
path = "E:\Affaires\EUROFACTOR - AP02N008\4.3 Formulaires\Formulaires spécifiques\"

Set WshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(path)
Set fichiers = Dossier.Files

For Each fichier in fichiers
'MsgBox "shortPath=" & fichier.ShortPath & vbCrLf & "Path=" & fichier.Path
'MsgBox "shortName=" & fichier.ShortName & vbCrLf & "Name=" & fichier.Name
   If Left(fichier.name,19) = "Main courante Ifdex" Then
      WshShell.Run fichier.ShortPath 'ouverture du fichier
      WScript.Sleep(3000)
      WshShell.SendKeys "^p" 'Ctrl+p pour imprimer
      WScript.Sleep(2000)
      WshShell.SendKeys "{ENTER}"  'imprimer => ok
      WScript.Sleep(3000)
      WshShell.SendKeys "%(fq)"   'fermeture du document
      WScript.Sleep(3000)
   End If
.........

SendKeys, méthode

Envoie une ou plusieurs séquences de frappes à la fenêtre active (comme si elles avaient été tapées au clavier).

object.SendKeys(string)

Arguments

object
Objet WshShell.
string
Valeur de chaîne indiquant la ou les séquences de frappes que vous voulez envoyer.

Notes

Utilisez la méthode SendKeys pour envoyer des séquences de frappes aux applications qui ne disposent pas d'une interface automatique. La plupart des caractères du clavier sont représentés par une seule séquence de frappe. Certains de ces caractères sont constitués d'une combinaison de frappes (CTRL+MAJ+ORIGINE, par exemple). Pour envoyer un seul caractère de clavier, envoyez le caractère lui-même comme argument chaîne. Par exemple, pour envoyer la lettre x, envoyez l'argument chaîne "x".

Remarque   Pour envoyer un espace, envoyez la chaîne " ".

Vous pouvez utiliser SendKeys pour envoyer plusieurs frappes en même temps. Pour cela, créez un argument de chaîne composé qui représente une séquence de frappes, en ajoutant chaque frappe de la séquence à celle qui la précède. Par exemple, pour envoyer les frappes a, b et c, envoyez l'argument chaîne "abc". La méthode SendKeys se sert de certains caractères comme modificateurs de caractères (au lieu d'utiliser leurs valeurs-police). Ce jeu de caractères spéciaux comprend des parenthèses, des crochets, des accolades et le :

  • signe plus       "+" 
  • signe caret             "^"
  • signe pourcentage "%"
  • signe tilde       "~"

Envoyez ces caractères en les mettant entre accolades "{}". Par exemple, pour envoyer le signe plus, envoyez l'argument chaîne "{+}". Les crochets "[ ]" n'ont pas de signification particulière lorsqu'ils sont utilisés avec SendKeys, mais vous devez les mettre entre accolades pour les applications qui leur donnent un sens particulier (pour DDE, par exemple).

  • Pour envoyer des crochets, envoyez l'argument chaîne "{[}" pour le crochet gauche et l'argument "{]}" pour le droit.
  • Pour envoyer des accolades, envoyez l'argument "{{}" pour l'accolade gauche et "{}}" pour la droite.

Certaines séquences de frappe ne génèrent pas de caractères (comme ENTRÉE et TAB). Certaines séquences de frappes représentent des actions (comme RET. ARR. et PAUSE). Pour envoyer des séquences de frappes de ce genre, envoyez les arguments indiqués dans le tableau suivant :

Touche Argument
RET. ARR. {BACKSPACE}, {BS}, or {BKSP}
PAUSE {BREAK}
VERROUILLAGE MAJUSCULE {CAPSLOCK}
SUPPR {DELETE} or {DEL}
FLÈCHE VERS LE BAS {DOWN}
FIN {END}
ENTRÉE {ENTER} or ~
ÉCHAP {ESC}
AIDE {HELP}
ORIGINE {HOME}
INSÈR {INSERT} ou {INS}
FLÈCHE GAUCHE {LEFT}
VERR NUM {NUMLOCK}
PAGE BAS {PGDN}
PAGE HAUT {PGUP}
IMPR ÉCRAN {PRTSC}
FLÈCHE DROITE {RIGHT}
ARRÊT DÉFIL {SCROLLLOCK}
TAB {TAB}
FLÈCHE HAUT {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

Pour envoyer des caractères du clavier comprenant une séquence de frappes classique combinée avec MAJ, CTRL ou ALT, créez un argument de chaîne composé représentant la combinaison de frappes. Pour cela, faites précéder la séquence classique par un ou plusieurs des caractères spéciaux suivants :

Touche Caractère spécial
MAJ +
CTRL ^
ALT %
Remarque : Lorsqu'ils sont utilisés de cette façon, ces caractères spéciaux ne sont pas compris entre accolades.

Pour spécifier qu'une combinaison de MAJ, CTRL et ALT doit être enfoncée pendant que l'on appuie sur d'autres touches, créez un argument chaîne composé avec les frappes modifiées entre parenthèses. Par exemple, pour envoyer la combinaison de frappes indiquant que la touche MAJ est enfoncée tout en appuyant sur :

  • e et c, envoyez l'argument chaîne "+(ec)".
  • e, suivi d'un seul c (sans MAJ), envoyez l'argument chaîne "+ec".

Vous pouvez utiliser la méthode SendKeys pour envoyer un schéma de frappes comprenant une seule frappe répétée plusieurs fois sur une ligne. Pour cela, créez un argument chaîne composé qui spécifie la frappe àrépéter, suivi du nombre de fois que vous voulez la répéter. Pour cela, utilisez un argument chaîne composé de la forme {frappe nombre}. Par exemple, pour envoyer la lettre "x" dix fois, envoyez l'argument chaîne "{x 10}". Assurez-vous d'inclure un espace entre la frappe et le nombre.

Remarque : Le seul modèle de frappe qu'il est possible d'envoyer est le type comprenant une frappe unique répétée plusieurs fois. Par exemple, vous pouvez envoyer "x" dix fois, mais vous ne pouvez pas en faire autant pour "Ctrl+x".
Remarque : Vous ne pouvez pas envoyer la clé IMPR ÉCRAN {PRTSC} vers une application.
mardi 15 novembre 2005 à 18:42:58 | Re : Question rapide, forcer une touche clavier

sampar

Un gros merci les gars,

Finalement, ce que je cherchais n'étais vraiment que le sendkeys().

Mon programme fût finalement très simple. Un shell pour lancer mon jeu, et puis un timer qui appuie sur quelques touches à toutes les minutes.


Discution close, merci encore.


Cette discussion est classée dans : question, clavier, touche, rapide, forcer


Répondre à ce message

Sujets en rapport avec ce message

Question sur touche de clavier [ par DraaFil ] Bonjour a tous,c'est la premiere fois que j'utilise le clavier dans mon programme. j'explique ce que je veux faire, p-t pourriez-vous m'aider.j'ai un TOUCHE CLAVIER - timer [ par GHGFSJD ] Bonjour, J'aimerai un coup de pouce pour la conception d'un programme qui pourrait me donner le temps d'appuie sur une touche. si je presse la touche touche clavier [ par ddove53 ] Slt, comment peut-on associer un spread (comme un datagrid) avec les touches du clavier?Merci Touche Clavier [ par GHGFSJD ] Bonsoir, petite question si je peus me permettre.ESt il possible de mapper les toucher clavier pour un autre programme ? Press Key !! [ par attaque ] Bonjour a tous,Voila enfaite j'aimerai faire un petit programme, mais je suis bloqué a un endroitLe probleme cest que j'aimerai que le clavier appui t probleme avec les touches clavier [ par ninja hacker ] Bonjour!voila je veux faire avance un personage dans mon appli VB quand on appui sur la fleche directionelle vers le haut. Voici mon code :Private</f question programme [ par kaneloni ] Bonjour, je voudrais créer un programme qui éxecute une liste de commande a intervalle de temps irrégulier si possible. je m'éxplique: simuler la pres afficher un texte apres avoir apuyé sur une touche clavier [ par elomkokou ] salut a tous,je debute en VB (VB2008 express edition)je voudrais declencher un evenement lorsque j'appuie sur une touche du clavier(exemple afficher u detecter mouvement souris et touche clavier [ par ALDOlivier ] Hello,Comment capturer la position de la souris en vb 2005????Et aussi détecter l'utilisation du clavier?Mais pas que dans une FORM!ps: pour faire une simuler touche clavier / souris !? [ par Claiyah ] bsr tout le mondesvp est ce c'est possible de simuler le click de la souris ou clavier et afficher le résultat dans un msgbox ou text... meme quand l'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales