begin process at 2012 02 14 03:45:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Shell

 > QUAND SENDKEYS NE MARCHE PAS (SIMULATION D'APPUI DE TOUCHES)

QUAND SENDKEYS NE MARCHE PAS (SIMULATION D'APPUI DE TOUCHES)


 Information sur la source

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Shell Niveau :Débutant Date de création :19/03/2002 Date de mise à jour :19/03/2002 15:14:42 Vu :13 728

Auteur : lutinpitchoune

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Sendkeys permet de simuler l'appuie de touches du clavier, cela peut être très utile si on fait intervenir des applications extérieures. C'est très simple il suffit d'envoyer la séquence des touches dont on a besoin pour la manipulation.
Mes desfois ça bug, les touches n'arrive pas dans le programme, surtout ceux du genre fortran d'avant guerre. Alors voilà l'astuce.
On met l'instruction désirée dans le presse papier, ensuite on se sert de Sendkeys pour envoyer l'instruction pour coller le contenu du presse papier, généralement Alt+Espace+E+O ce qui ce traduit par "% eo".
Etrangement certains programmes se comporte bizarrement avec sendkeys, seul des ordres simples passe, comme notre séquence qui nous servira pour toutes les touches.

Source

  • Public Declare Sub Sleep Lib "kernel32" (ByVal dwTime As Long)
  • ' Sleep sert pour la synchronisation de la macro et du programme
  • --------------------------------------------------------------------------------------------
  • Sub ExeTS()
  • Dim MyAppID
  • MyAppID = Shell("C:\monprogramme.exe", vbNormalFocus)
  • Set MyDataObject = New DataObject 'création d'un DataObject
  • MyDataObject.SetText Chr(13) 'insertion de la touche "Entrée" dans le DataObject
  • MyDataObject.PutInClipboard 'transvasement du DataObject au Presse Papier
  • SendKeys "% eo", True 'collage du contenue du presse papier
  • Sleep 1000 'attente d'execution du programme
  • MyDataObject.SetText ("aaaaa") 'saisie du mot de passe
  • MyDataObject.PutInClipboard
  • SendKeys Chr(8), True 'effacement des caractères présents
  • SendKeys "% eo", True
  • Sleep 1000
  • End Sub
Public Declare Sub Sleep Lib "kernel32" (ByVal dwTime As Long)
' Sleep sert pour la synchronisation de la macro et du programme
--------------------------------------------------------------------------------------------
Sub ExeTS()

Dim MyAppID
MyAppID = Shell("C:\monprogramme.exe", vbNormalFocus)

Set MyDataObject = New DataObject 'création d'un DataObject

MyDataObject.SetText Chr(13)   'insertion de la touche "Entrée" dans le DataObject
MyDataObject.PutInClipboard     'transvasement du DataObject au Presse Papier
SendKeys "% eo", True              'collage du contenue du presse papier
Sleep 1000 'attente d'execution du programme

MyDataObject.SetText ("aaaaa") 'saisie du mot de passe
MyDataObject.PutInClipboard
SendKeys Chr(8), True              'effacement des caractères présents
SendKeys "% eo", True
Sleep 1000

End Sub 

 Conclusion

N'hésitez pas à m'écrire si vous trouvez des bug à ce code où si vous avez des améliorations à apporter, mon mail : onatzkypatrick@hotmail.com

1er bug : certaine fois, un caractère s'ajoute tout seul à votre saisie, il suffit de l'effacer avant avec SendKeys Chr(8), True 'Retour en arrière.


 Sources de la même categorie

Source avec Zip CHOIX DE COULEUR SOUS XP EN MODE CONSOLE par ccgousset
Source avec Zip Source .NET (Dotnet) ENVOYEUR DE MAIL EN BATCH/DOS par Ant95
Source avec Zip Source avec une capture LANCEUR REALVNC par Nobru59
Source avec Zip Source .NET (Dotnet) XGBLENDERCOMPRESSOR par XelectroX
Source avec Zip Source .NET (Dotnet) CONTRÔLER L'AUTORUN DE WINDOWS XP (ET SUPÉRIEUR) ET LES NOTI... par ShareVB

Commentaires et avis

Commentaire de sisko59 le 05/05/2005 18:03:51

Rend service pour comprendre copier/coller ;-)

Commentaire de devsurf le 13/11/2008 17:06:04

Salut,
Je n'arrive pas à le faire fonctionner.
A quoi sert MyAppID ? il n'est pas utilisé ....

 Ajouter un commentaire




Nos sponsors


Sondage...

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,764 sec (4)

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