Accueil > Forum > > > > SendMessage et WM_KEYDOWN
SendMessage et WM_KEYDOWN
jeudi 2 mars 2006 à 14:25:30 |
SendMessage et WM_KEYDOWN

jocou
|
Bonjour à tous
J'essaye de simuler l'envoi d'un touche dans la fenêtre de saisie d'une appli externe.
J'utilise la séquence suivante :
PostMessage hWnd, WM_KEYDOWN, VK_SHIFT, 0
PostMessage hWnd, WM_KEYDOWN, &H41, 0
Cette séquence ne fonctionne pas : j'envoie un 'a' alors que je voudrais envoyer un 'A' (shift + 'a').
Quelqu'un peut-il me dire pourquoi ?
Merci pour la réponse.
|
|
mardi 7 mars 2006 à 19:53:44 |
Re : SendMessage et WM_KEYDOWN

ShareVB
|
salut,
c'est peut être parce que ce n'est pas simultané...
essaie d'utiliser SendMessage à la place de PostMessage...
ensuite tu doit faire des WM_KEYUP dans l'ordre inverse : &H41 puis VK_SHIFT...
ShareVB
|
|
mercredi 8 mars 2006 à 10:17:55 |
Re : SendMessage et WM_KEYDOWN

jocou
|
Désolé, ça ne marche pas non plus avec les SendMessage (j'avais déjà essayé)
Bizarre, bizarre !!!
|
|
mercredi 8 mars 2006 à 13:51:38 |
Re : SendMessage et WM_KEYDOWN

ShareVB
|
salut,
avec les KEYUP dans le bon ordre ? down shift, down a, up a up shift...bizarre...
sinon, regarde du côté de WM_CHAR ou WM_GETTEXT ou WM_SETTEXT ou Get/SetWindowText...
ShareVB
|
|
mercredi 8 mars 2006 à 15:26:03 |
Re : SendMessage et WM_KEYDOWN

jocou
|
J'ai commencé par tester avec WM_SETTEXT, et ça ne marche pas non plus.
En fait, l'appli externe est écrite dans un langage exotique que je ne connais pas. Par contre, ce que je peux constater avec SPY++, c'est qu'aucun des contrôles disposés dans la fenêtre principale de l'appli ne possède un classname standard Windows.
Par exemple, la fenêtre principale a un classname "TWINDOW2" et un caption (le titre de la fenêtre), et tous les contrôles de cette fenêtre (zone d'édition, boutons, checkbox...) ont le même classname (TWINDOW1) et un caption null.
Original non ?
|
|
mercredi 28 juin 2006 à 11:59:01 |
Re : SendMessage et WM_KEYDOWN

viasante
|
Hello,
J'ai le même souci ! Mon application exotique est en Natstar ! As tu résolu ton problème ?
Le premier qui trouve contacte l'autre.
A+
|
|
mercredi 28 juin 2006 à 12:06:50 |
Re : SendMessage et WM_KEYDOWN

jocou
|
Salut viasante
Hélas non, je n'ai pas résolu mon problème, et j'ai même laissé tomber.
Par contre, si tu trouves quelque chose, fais-moi signe...
(Mon appli à interfacer était écrite en NSDK)
A+ et bon courage...
|
|
mercredi 28 juin 2006 à 14:42:33 |
Re : SendMessage et WM_KEYDOWN

viasante
|
Hello JOCOU, Tout à fait : NSDK c'est de chez NAT SYSTEM, dont un de leur produit s'appelle NATSTAR. [ Lien ]J'ai eu un technicien de Nat System qui m'a expliqué qu'ils utilisent une couche qui masque l'accès à leurs fenêtres, donc impossible d'utiliser l'API windows. Il va tout de même demander à un collègue et me rappelle demain soir. En attendant je croise les doigts !!! A+
|
|
jeudi 3 août 2006 à 14:02:03 |
Re : SendMessage et WM_KEYDOWN

jocou
|
Salut viasante
Je reviens à la charge au sujet de NSDK
As-tu obtenu de nouvelles infos ?
Si oui, peux-tu me contacter ?
A+
|
|
mercredi 13 septembre 2006 à 14:33:21 |
Re : SendMessage et WM_KEYDOWN

robin42p
|
L'histoire de la couche qui masque est tout à fait exacte.
Il faut réduire cette couche afin de pouvoir récupérer les différents pointeurs nécessaires.
Voici un exemple pour faire défiler une liste (bon c'est pas optimisé mais ça marche !) Le 1er pointeur correspond à un bouton Annuler Le 2ème correspond à la fameuse couche qu'il faut réduire
appHandle = GetTopWindow(0)
Do Until appHandle = 0 h = GetWindowText(appHandle, winTitle, 255) If winTitle Like "*Le titre de l'appli*" Then h = FindWindowEx(appHandle, ByVal 0&, "TWINDOW1", "")
'Récupération du pointeur de la touche Annuler hAnnuler = FindWindowEx(h, ByVal 0&, "TWINDOW1", "")
'Récupération du pointeur de la couche supplémentaire hCouche = FindWindowEx(h, hAnnuler, "TWINDOW1", "")
'Réduction de la couche ShowWindow hCouche, SW_MINIMIZE 'Récupération du pointeur la liste déroulante hListe = FindWindowEx(h, hAnnuler, "TWINDOW1", "") hListe = FindWindowEx(hListe, 0, "TWINDOW1", "") 'Récupération du type du contrôle wstyle = GetWindowLong(hListe, GWL_STYLE)
's'il s'agit d'une liste alors envoi de la touche BAS If wstyle = &H50200000 Then PostMessage hListe, WM_KEYDOWN, VK_DOWN, 0& End If 'Restauration de la couche ShowWindow hCouche, SW_SHOWNORMAL
etc...
|
|
Cette discussion est classée dans : sendmessage, wm, séquence, keydown, postmessage
Répondre à ce message
Sujets en rapport avec ce message
L'api : SendMessage - WM_CLOSE ne ferme pas IE ! [ par magicyoda ]
ca menerve ! cette fonction ne ferme pas IE !jai trouve sur le site une api : destroywindow mais elle marchait avec aucun programme !je voudrais bien
Probléme avec SendMessage [ par FrostByte ]
Je voudrais envoyer une frappe de touche via SendMessage à Firefox donc voici le code Public Const WM_KEYDOWN = &H100Public Const WM_KEYUP = &H101Publ
SendMessage WM_SETTEXT [ par tbbuim1 ]
Salut à tous! Public Sub WriteIntoAppli() Dim hWnd As Long hWnd = GetForegroundWindow AttachThreadInput App.ThreadID, GetWindowThreadProce
Envoi de control à une autre appli [ par olepretre ]
Bonjour,Je voudrais envoyer des séquences de controle (ctrl a, ctrl c) à une autre application (comme word, excel...). J'ai testépostmessage(hwnd,WM_K
Fermeture d'une appli avec PostMessage [ par logedu ]
J'ai une application que je n'arrive pas à fermer par Postmessage hwnd, WM_CLOSE,0$,0$Si l'on agit manuellement, cette appli ne se ferme pas avec 'Alt
relance pour mon probleme de sendMessage [ par etherny ]
POST initial (pour la ptite histoire) : http://www.vbfrance.com/forum.v2.aspx?ID=543998 Mon problème : je n'arrive pas a connaitre le handle de la fe
Capture vidéo et periphériques [ par promethee2003 ]
Bonjour a tous, j'ai un petit soucis. Je créer une appli de capture video(webcam...) pour capturer des images fixes a interval regulier. Le probléme
SendMessage, MouseDown,X, Y [ par Unreal ]
Bonjour,ça fait quelque temps que je cherche comment envoyer la position de la souris X et Y avec la commande WM_MOUSEDOWN en utilisant SendMessage:Pr
envoi un code touche a une apli par son hwnd [ par breton51 ]
bonjour je voudrai envoyer CtrL+O au bloc notemais voila rien ne se passevoici mon code ci quelqu'un a une idée <span lang="EN-GB" st
question erreur [ par marty14 ]
Bonjour,Je cale sur un retour d'erreur , si j'envois au programe AA qui n'est pas ouvert:Call PostMessage(AA, WM_KEYDOWN, vbKeyDown, 0&) 'DOWNCall Pos
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|