|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : sendmesage Postmessage [ Windows / API ] (POURMONET)
Informations & options pour cette discussion
samedi 22 novembre 2008 à 11:43:08 |
sendmesage Postmessage

POURMONET
|
Bonjour, ça coince. Je dois être un peu neuneu, mais ce bout de code ne fonctionne pas. j'ai une application qui tourne, elle s'appelle "Identification", je veux lui envoyer un message à afficher dans un textbox à partir d'un autre programme. le code est simple : 'envoyer un message sur mon appli nom_fenetre = "Identifiant" Handle = cherche_fenetre(vbNullString, nom_fenetre) Handle = GetWindow(Handle, 5) 'se placer dans la fenetre du texte txt = "BONJOUR" For num = 1 To Len(txt) lettre = Asc(Mid(txt, num, 1)) PostMessage Handle, WM_KEYDOWN, lettre, 0 PostMessage Handle, WM_KEYUP, lettre, 0 Next
Et bien ça marche pas. Les fonctions Tab ou Close passent bien, mais ce message ne s"affiche pas. j'ai du rater quelque chose, mais je ne sais pas ou !!! si quelqu'un a une idée, je le remercie par avance. Patrick
|
|
|
samedi 22 novembre 2008 à 16:27:17 |
Re : sendmesage Postmessage

PCPT
|
salut,
pas besoin de boucler...
en plus ici tu n'envoies pas la lettre mais son code ascii, et n'ayant pas tes déclarations sous les yeux, moins facile... et " cherche_fenetre " n'est pas un nom d'API normal...
Private Const WM_SETTEXT As Long = &HC& Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long
SendMessage Handle , WM_SETTEXT, ByVal 0&, ByVal "BONJOUR" Prenez un instant pour répondre à ce sondage svp
|
|
|
samedi 22 novembre 2008 à 18:12:53 |
Re : sendmesage Postmessage

POURMONET
|
Bonsoir, Cherche_fenetre c'était juste pour montrer à un ami que l'on pouvait modifier le nom d'une fonction API. ceci dit, WM-SETTEXT marche trés bien, toutefois il n'affiche pas le texte dans la bonne textbox, mais toujours dans le même bouton de la fenêtre.  comment faire pour afficher dans le bon champ de saisie ? j'ai essayé la touche tab, le focus change bien mais le text est toujours saisie dans le même controle. nom_fenetre = "Identifiant" Handle = FindWindow(vbNullString, nom_fenetre) Handle = GetWindow(Handle, 5) 'se placer dans la fenetre du texte
TxT$ = "BONSOIRkjhk"
PostMessage Handle, WM_KEYDOWN, VK_TAB, 0 'enter
SendMessage Handle, WM_SETTEXT, ByVal 0&, ByVal TxT$
merci pour ton aide patrick  
|
|
|
samedi 22 novembre 2008 à 18:37:26 |
Re : sendmesage Postmessage

PCPT
|
à toi d'avoir le bon handle.... tu as mis Handle = GetWindow(Handle, 5) 'se placer dans la fenetre du texte , ce "choix" sort d'où ?
ps : ami ou pas, quel intérêt de changer les noms? Prenez un instant pour répondre à ce sondage svp
|
|
|
samedi 22 novembre 2008 à 19:30:24 |
Re : sendmesage Postmessage

POURMONET
|
Cela me permet de sélectionner une fenêtre du programme hôte. Si je ne met pas GetWindows, le message apparait dans le titre de la fenêtre. Si je le laisse, le message apparait dans le bouton OK J'ai essayé d'autres code que le 5, mais cela ne donne rien.
je n'arrive pas à envoyer mon message dans la textbox.
Le problème est que je n'ai pas pu trouvé d'explication claire sur ces fonctions. J'avance à TATON.
|
|
|
samedi 22 novembre 2008 à 22:08:49 |
Re : sendmesage Postmessage

PCPT
|
à tatons ok mais là c'est pire que du pifomètre..., tu utilises une API sans lire à quoi elle sert...
The GetWindow function retrieves the handle of a window that has the specified relationship (Z order or owner) to the specified window. 5 c'est GW_CHILD
avoir la class "enfant" c'est bien beau, mais il y a plusieurs contrôles sur ce "niveau".... des "button", des "edit", etc.....
si tu prends le premier venu forcément tu as le premier venu!
soit tu gardes cette méthode et dans ce cas il te faut aussi jouer avec GetClassName et de nouveau GetWindow avec le flag GW_HWNDNEXT, soit tu joues avec FindWindowEx
tout çà, par chance, est documenté : http://msdn.microsoft.com/fr-fr/library/default.aspx
le mieux étant au moins de savoir ce qu'on cherche, en l'occurence d'aller "lire" le bon handle visuellement, avec Spy++, puis de commencer les tests (sendmessage) seulement quand on a trouvé le même handle
bon courage Prenez un instant pour répondre à ce sondage svp
|
|
|
dimanche 23 novembre 2008 à 01:04:31 |
Re : sendmesage Postmessage

POURMONET
|
Hello, j'ai TATE pendant un bon moment, mais ça marche avec FindWindowsEx. Pas facile de trouver les réponses à des questions aussi précises.
Merci pour ton aide et bonne nuit.
Patrick
|
|
|
dimanche 23 novembre 2008 à 01:18:48 |
Re : sendmesage Postmessage

PCPT
|
pense à valider la ou les bonnes réponses dans ce cas bonne continuation
|
|
|
dimanche 23 novembre 2008 à 08:36:02 |
Re : sendmesage Postmessage

Renfield
|
une fois la fenetre parent trouvée, tu peux jouer avec l'ID du controle ciblé.
Private Declare Function GetDlgItem Lib "user32.dll" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
lances Spy++ pour connaitre l'ID du textbox dont tu cherches le handle
|
|
|
mardi 25 novembre 2008 à 17:04:55 |
Re : sendmesage Postmessage

johnnous
|
salut tu pourrais m'evoyer tes sources
merci Jean louis
|
|
|
Cette discussion est classé dans : message, fenetre, handle, lettre, postmessage
Répondre à ce message
Sujets en rapport avec ce message
METTRE HANDLE AU PREMIER PLAN [ par Esc ]
Je n'arrive pas à mettre une fenetre d'une autre appli au premier plan de l'écran avec le focus mis sur cette fenetre.Je n'ai que le handle de la fene
Comment poster un message à une fenetre DOS [ par GEDDi ]
Je sais qu'avec SendMessage on peut envoyer des messages à d'autres fenetres, mais je sais pas comment on peut poster un message à une fenetre dite 'c
API ShellExecute [ par jockos ]
Salut,LE premier paramètre de la méthode Api ShellExecute est un Long qui a pour nom Hwnd...J'ai été voir sur la MSDN et il semblerai que ce soit l'ha
Message Box [ par xavier77 ]
Salut, J'en ait un peu marre du MsgBox de VB, alors, j'ai donc décidé d'en créer un avec des nouvelles propriétés (couleur, des nouveau icones,...).J'
sendmessage [ par pascalparis ]
bonjour,merci vos réponses mais en fait je m'étais mal expriméj'avais le lien sur MSDN et j'ai +sieurs APIviewers qui me donnent toutes les constantes
handle appativate [ par charleshenri ]
bonjour a tous. voila j'ai une fenetre d'erreur de script de Internet Explorer qui n'arrete pas de s'afficher avec une radio que je suis entrain de cr
Afficher un message plein ecran quelque soit la fenetre active [ par yohan49 ]
Voila , une fois n'est pas coutume , j'ai un autre defi ! lolcomment faire afficher un message text a l'ecran quelque soit l'application qui a le focu
trouver le handle de la fenetre active meme si c'est une fentre fille [ par khalilo ]
ben je crois que tout est résumé dans le titre: comment à partir d'une API ou d'autre chose on pourrait trouver le handle de la fenetre qui a le focus
Handle d'une fenetre [ par BasicInstinct ]
'lutje voudrai recuperer le handle d'une fenetre d'une appli exterieur (par exemple c:\toto.exe). BasicInstinct
Recupération de l'handle d'une fenetre [ par Falk ]
Quelqu'un pourait-il me renseigner sur l'API a utiliser en VB.NET pour récupérer l'Handle d'une fenetre a partir du texte de cette meme fenetre.Et si
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|