cs_oshin
Messages postés50Date d'inscriptionsamedi 11 janvier 2003StatutMembreDernière intervention 8 août 2009
-
7 août 2009 à 20:44
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
8 août 2009 à 01:20
Salut à tous,
Le code suivant fonctionne sur Notepad (Bloc-notes) mais ne fonctionne avec aucun autre programme, Live Messenger, Wordpad, Outlook, etc..
J'ai récupèrer la Class d'une fenêtre Live messenger et l'est adapté au code mais rien à faire... il n'écrit rien !
(DirectUIHWND correspond à la Class de la zone texte de WLM et IMWindowClass à la fenêtre de conversation)
Avez vous une idée ?
Merci
#include <windows.h>
int WINAPI WinMain(HINSTANCE a,HINSTANCE b, LPSTR c, int d)
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 7 août 2009 à 21:05
Chez moi, la fenêtre principale est de classe MSBLWindowClass; t'es sûr que t'as sélectionné la bonne? (la fenêtre fille est de classe DirectUIHWND donc on parle bien de la même chose).
Ceci fonctionne très bien:
HWND hWnd=FindWindow("MSBLWindowClass",0);
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 7 août 2009 à 21:09
Heu finalement, non, on ne parle peut-être pas de la même chose.
En tous cas, le code est censé fonctionner. Si ça marche pas, c'est pas la bonne classe, ou bien la fenêtre n'est pas top-level.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 7 août 2009 à 22:51
Salut,
Il faut que tu connaisses l'arborescence des fenêtres de l'application cible avec précision, de manière à pouvoir écrire un bout de code qui passe de handle en handle jusqu'à tomber sur le bon.
Spy++ fournit avec VS le fait très bien. Mais vu que tu as Dev-Cpp, tu l'as peut être pas. Donc essaie de trouver une alternative, genre celle-là.
cs_oshin
Messages postés50Date d'inscriptionsamedi 11 janvier 2003StatutMembreDernière intervention 8 août 2009 8 août 2009 à 00:59
J'utilise WinID qui m'indique plutôt bien les Class et tout.
J'ai analyser un peu le probleme, et c'est le suivant :
if((notepad FindWindow("IMWindowClass", 0))){ > Ici il trouve bien IMWindowClasse puisque un Sleep(9999999) arrête le programme
if((editbox FindWindowEx(notepad, 0, "DirectUIHWND", 0))){ > Parcontre ici, il ne trouve pas DIRECTUIHWND.. puis qu'un Sleep ou n'importe quel autre instruction n'arrête pas le programme...
Comment ça se fait ? WinId m'indique bien DirectUIHWND lorsque j'ai le curseur sur la zone de saisie dans la fenêtre de conversation.. ! Je ne vois pas quoi d'autre faire :o