Imposer l'appui d'une touche ou d'un click [Résolu]

jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention - 18 avril 2007 à 17:31 - Dernière réponse : jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention
- 19 avril 2007 à 14:19
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"?
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention - 19 avril 2007 à 14:19
3
Merci
Merci pour tous Violent Ken, ça marche tres bien

@+

Jimy

Merci jimy neutron 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de jimy neutron
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 18 avril 2007 à 20:17
0
Merci
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<hr />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<hr />, ----
By Renfield
@+

Hex Editor VB
Commenter la réponse de violent_ken
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 18 avril 2007 à 20:19
0
Merci
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
Commenter la réponse de violent_ken
jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention - 18 avril 2007 à 21:10
0
Merci
Merci pour tout Violent Ken,
@+
Commenter la réponse de jimy neutron
jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention - 18 avril 2007 à 21:39
0
Merci
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
Commenter la réponse de jimy neutron
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 18 avril 2007 à 23:06
Commenter la réponse de violent_ken
diablamanshadow 420 Messages postés lundi 30 août 2004Date d'inscription 28 janvier 2008 Dernière intervention - 19 avril 2007 à 12:06
0
Merci
    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 ^^
Commenter la réponse de diablamanshadow
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 19 avril 2007 à 12:39
0
Merci
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
Commenter la réponse de violent_ken
jimy neutron 491 Messages postés mercredi 1 février 2006Date d'inscription 18 novembre 2016 Dernière intervention - 19 avril 2007 à 13:28
0
Merci
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....
Commenter la réponse de jimy neutron
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 19 avril 2007 à 13:38
0
Merci
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
Commenter la réponse de violent_ken

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.