begin process at 2012 02 14 17:18:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

API

 > 

Imposer l'appui d'une touche ou d'un click


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

Imposer l'appui d'une touche ou d'un click

mercredi 18 avril 2007 à 17:31:10 | Imposer l'appui d'une touche ou d'un click

jimy neutron

Membre Club

Bonjour à tous,

Je suis en train de développer une appli de control à distance avec Winsock( dans la plus grande déontologie...)  et j'utilise cette fonction:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

pour connaitre quelle touche a été enfoncer, jusque là tout va bien! Mais sur l'appli client, je ne parviens pas à trouver la fonction inverse de "GetAsyncKeyState" pour simuler l'appui d'une touche ou d'un click souris.

Novice ( et un peu perdu...)dans l'utilisation des DLL, j'ai essayer sans succés "SetAsyncKeyState"

Quelqu'un connaitrait-il la soluce?

Merci à tous

PS: Où peut on trouver toutes les fonctions d'une DLL comme "USER32"?

mercredi 18 avril 2007 à 20:17:37 | Re : Imposer l'appui d'une touche ou d'un click

violent_ken

Membre Club


Violent Ken

Salut, voilà comment faire (exemple de API guide) :

Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
   'Print the key on the form
   Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
   'KPD-Team 2000
   'URL: http://www.allapi.net/
   'E-Mail: KPDTeam@Allapi.net
   'Clear the form
   Me.Cls
   keybd_event VK_H, 0, 0, 0  ' press H
   keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0  ' release H
   keybd_event VK_E, 0, 0, 0 ' press E
   keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
   keybd_event VK_L, 0, 0, 0 ' press L
   keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
   keybd_event VK_L, 0, 0, 0 ' press L
   keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
   keybd_event VK_O, 0, 0, 0 ' press O
   keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
By Renfield
@+

Hex Editor VB

mercredi 18 avril 2007 à 20:19:34 | Re : Imposer l'appui d'une touche ou d'un click

violent_ken

Membre Club


Violent Ken

Au fait j'oubliais : pour obtenir le nom de toutes les fonctions de par exemple User32.dll, ouvre la dll avec l'utilitaire dependecy walker (fourni avec VB6, nommé DEPENDS.exe)

@+

Hex Editor VB

mercredi 18 avril 2007 à 21:10:05 | Re : Imposer l'appui d'une touche ou d'un click

jimy neutron

Membre Club

Merci pour tout Violent Ken,
@+

mercredi 18 avril 2007 à 21:39:39 | Re : Imposer l'appui d'une touche ou d'un click

jimy neutron

Membre Club

En effet, DEPENDS permet de voir le contenu d'une DLL, mais comment peut on connaitre l'utilisation et l'utilité de chaque fonction...L'exemple de USER32 compte pas moins de  Fonctions, c'est a y perdre son latin...comment savoir la syntaxe a utilisé pour chacune d'entre elle, y a t il un site dédié, des ouvrages info, ou autres...

J'ai sans doute l'air un peu couillon, mais jusqu'a l'heure, j'utilisé les codes trouvé sur le site, mais je voudrais comprendre tout ce que je fais...

Merci

mercredi 18 avril 2007 à 23:06:02 | Re : Imposer l'appui d'une touche ou d'un click

violent_ken

Membre Club


Violent Ken

[ Lien ]
@+


Hex Editor VB

jeudi 19 avril 2007 à 12:06:28 | Re : Imposer l'appui d'une touche ou d'un click

diablamanshadow

    pour simuler l'appuie d'une touche pourquoi pas un sendkeys ? tu envoie ta donnee a distance par socket genre
sendkeys.h (h serais la lettre a simuler la pression) une fois arrivee dans le data arrivals de l'exe a distance hop tu split avec le . (ou tu utilise une touche ascii bizzard pour pas ne pas pouvoir simuler un .)
une fois fait tu fais le code genre (en prennant que ta un tableau() et que les donnee arrive dans le data)

dim tableau() as string
dim data as string

tableau = split(data, ".")

sendkeys tableau(1)

voila en esperant t'avoir eclairer ^^
jeudi 19 avril 2007 à 12:39:12 | Re : Imposer l'appui d'une touche ou d'un click

violent_ken

Membre Club


Violent Ken

"pour simuler l'appuie d'une touche pourquoi pas un sendkeys" ==> sans doutes pour la même raison que ce qui l'a poussé à utiliser GetAsyncKeyState plutôt que l'évenement KeyPress...
@+

Hex Editor VB

jeudi 19 avril 2007 à 13:28:54 | Re : Imposer l'appui d'une touche ou d'un click

jimy neutron

Membre Club

Merci a tous  pour vos reponses.
J'ai utilisé la soluce de Violent Kent (Keybd_event..)et cela fonctionne tres bien pour simuler l'appui de touche, par contre, la simulation des clicks souris, pour exemple "Keybd_event 1,0,0  '(VbLeftButton=1) ne fonctionne pas....

jeudi 19 avril 2007 à 13:38:01 | Re : Imposer l'appui d'une touche ou d'un click

violent_ken

Membre Club


Violent Ken

Aller, pendant que j'y suis : (pour la souris)

'Before you start this program, I suggest you save everything that wasn't saved yet.
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Activate()
   'KPD-Team 1998
   'URL: http://www.allapi.net/
   'E-Mail: KPDTeam@Allapi.net
   Do
       'Simulate a mouseclick on the cursor's position
       mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
       DoEvents
   Loop
End Sub
By Renfield


@+ (et pense à valider les réponses qui te conviennent, comme çà le prochain utilisateur qui tombera sur ce post saura directement où trouver les réponses)

Hex Editor VB


1 2

Cette discussion est classée dans : appli, touche, click, appui, imposer


Répondre à ce message

Sujets en rapport avec ce message

clavier azerty/qwerty [ par goebish ] comment faire pour que l'appui d'une touche me renvoie la meme valeur sur un clavier azerty ou qwerty (ex: que l'appui sur la touche 'a' d'un azerty m -- DETECTION APPUI SUR UNE TOUCHE, SVP ! -- [ par Ed ] Je suis désolé mais je repose ma question, si quelqu'un pouvais m'aider, je suis vraiment bloqué !Merci tout le monde les gens !J'ai une Form en haut, Simuler l'appui de la touche "entrer" dans un controle [ par VLAD ] salut : comment simuler qu'on a appuiyer sur entrer (sans le faire manuellement evidement ) dans un texte box par exemple ! Dans text.keypress comment faire pour activer un boutton_click sur la touche "entrée"... [ par ALEX001 ] Comment faire ??? style mot de passe et valide, dans la zone de texte en pressant la touche "entée" cela active le boutton click, je ne connais pas la Détection appui sur une touche et hors de la Form ? [ par Ed ] J'ai une Form en haut, à droite; comment puis-je détecter que je travaille par ex. sous word ou excel ou ...( détection d'appui de touche) excel : dans une feuille, tester l'appui d'une touche avant d'appuyer sur un bouton [ par kaon ] Bonjour,J'ai un bouton (commandbutton) dans une feuille excel avec lequel je souhaite lancer deux procédures differentes écrites en VBA (appelons les GET30 Imprimer [ par betty.34 ] bonjour,j'ai mis dans mon appli le composant GETATOCX afin d'imprimer un etat .. et sur le click je n'arrive pas a l'imprimer .. c bien une base sql s imposer un chemin d'accès [ par VbAbdoul ] Bonjour a tous,j'ai créé un appli VBA qui permet de recuperer son code à partir d'un fichier txt et de le coller dans l'appli.Je souhaite que ce fichi simuler appui long sur une touche [ par juda13 ] bonjourje cherche a faire un programme qui me permettent de simuler l'appui sur une touche pendant un temps precis, par exemple, l'appui sur la touche Nombre d appui sur une touche divisé par le tps ???? [ par kafor ] En fait je souhaite créer un programme qui permettrai de lancer untimer apres l utilisateur n aurait ka jouer le rythme de son MP3 en jouant le rythme


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 : 3,136 sec (3)

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