SendMessage GetFocus, WM_PASTE... Probleme

cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009 - 10 juin 2006 à 00:05
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 14 juin 2006 à 19:58
Bonjour à tous,
Alors voila mon probleme est simple a comprendre mais je n'est aucune idée de comment le resoudre enfet voila j'ai pri un bout de code qui permet de coller du texte dans la fenetre active
SendMessage GetFocus, WM_PASTE, 0, ByVal 0&

le code entier est :
'on copie
Clipboard.SetText AColler
'on choisi la fenetre qui a le focus et on colle
'SendMessage GetFocus, WM_PASTE, 0, ByVal 0&
AttachThreadInput App.ThreadID, GetWindowThreadProcessId(hWnd_Target, 0), False

Mon probleme est le suivant lorsque je réalise se code avec notepad cela marche parfaitement mais lorsque je fais se meme code avec Dreamweaver ceci foire totalement le texte n'est pas coller car la fenetre qui à le focus n'est pas le bloc ou l'on ecrit dans Dreamweaver mais c'est la fenetre Dreamweaver comment je peu faire pour :
-que se soi le bloc ou je doi ecrire qui est le focus
-ou que se soit mon prog qui colle (WM_PASSTE) non plus dans la fenetre qui a le focus (GetFocus) mais dans la fenetre que je veux (une sous fenetre de Dreamweaver)

Merci d'avance

Ps ; j'ai essayer la simulation de ctrl + v ca marche mais avec des bug (normal)

3 réponses

clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 1
10 juin 2006 à 12:25
Salut,

Je pense que tu dois mieux cibler la fenêtre de destination de ton coller. Pour ça, utilise l'API FindWindow. Ton code donnera alors:

'on copie
Clipboard.SetText AColler
'on choisi la bonne fenetre et on colle
hWnd_Target = FindWindow(vbNullString, "Titre de la fenêtre")
SendMessage hWnd_Target, WM_PASTE, 0, ByVal 0&

Evidemment, cela implique que tu connaisses le titre de la fenêtre cible que tu mettras à la place de "Titre de la fenêtre".

Bon courage, Clm.
0
cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009
10 juin 2006 à 16:30
Salut,

Je te remercie mais apriori malgré que je connaissent le nom exacte qui est par exemple :, "Macromedia Dreamweaver 8 - [Untitled-2 (XHTML)]" ceci ne marche pas comment je peu faire pour avoir le nom des fenetre ouverte DANS dreamweaver car apriori la je n'est que le nom de la fenetre principale (dans ctrl + alt + suppr) et surement qu'il me faut le nom de la fenetre qui est dedant
A tu une idée ?
Merci encore
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
14 juin 2006 à 19:58
salut,

une fois que tu as la fenêtre principale, tu utilises FindWindowEx pour parcourir toute l'arborescence des fenêtres jusqu'à arriver dans le textbox :

regarde l'utilitaire Spy++ de Visual Studio...

ShareVB
0
Rejoignez-nous