begin process at 2012 05 30 03:31:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

Lire le TextEdit a chaque fois que son contenu change


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire le TextEdit a chaque fois que son contenu change

lundi 30 juillet 2007 à 19:28:37 | Lire le TextEdit a chaque fois que son contenu change

aztcaLISS

Salut,

Je suis capable de trouver le HWND d'un TextEdit multi-ligne qui se trouve sur une Fenetre d'une autre application.

Le contenu de ce TextEdit peut changer a n'importe quel momment. Il faut que je lise le contenu du TextEdit presque automatiquement lorsque le contenu de celui-ci change.

J'ai entendu parler des HOOK pour pouvoir capturer les messages windows. Je suppose que le message EM_REPLACESEL est envoyé. Est-ce que c'est faisable? Si oui, avez-vous des examples ou des tutoriaux qui montre comment utiliser les HOOK (pour capturer les messages sur un TextEdit).

merci

azt
lundi 30 juillet 2007 à 20:19:06 | Re : Lire le TextEdit a chaque fois que son contenu change

THEwarrior333


Sinon, le message EN_CHANGE?

Un clavier Azerty en vaut deux

lundi 30 juillet 2007 à 20:53:41 | Re : Lire le TextEdit a chaque fois que son contenu change

aztcaLISS

bon, ce que je disais:

je suis aller voir sur MSDN pour le message EN_CHANGE.
c'est écrit:

Sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after the system updates the screen. The parent window of the edit control receives this notification message through a WM_COMMAND message.

je crois que ca doit fonctionner.

Mais comment je fais pour savoir que ce message a été envoyé puisque le TextEdit se retrouve sur une fenetre d'un autre programme que le mien?

azt

lundi 30 juillet 2007 à 21:19:34 | Re : Lire le TextEdit a chaque fois que son contenu change

BruNews

Administrateur CodeS-SourceS
Faut rentrer dans le processus cible, SetWindowsHookEx ou CreateRemoteThread.

ciao...
BruNews, MVP VC++
mardi 31 juillet 2007 à 13:18:19 | Re : Lire le TextEdit a chaque fois que son contenu change

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Un exemple de hook, mais en interne dans l'appli.

Pour que ça marche pour une autre appli, il doit falloire suffire de passer le bon id de thread en paramètre.

Ca à l'air chaud de récupérer cette ID, sauf si c'est nous qui avons lancé l'appli tierce.

Si ce n'est pas nous, il faut commencer par un snapshot des processus.

Celui-ci va commencer par permettre de récupérer l'ID du processus qui nous intéresse.

Ensuite, toutjours avec le même snapshot, on peut lister les ID des threads ainsi que l'ID de leurs processus.

En comparant l'ID du processus parent avec celui récupéré plus haut, on peut trouver les ID des threads du processus.
Et prier pour qu'il n'y en ai qu'un, sinon...

Une alternative est de hooker tout le monde en passant 0 comme thread ID pour hooker tout le monde et tester avec le handle de la fenêtre, mais c'est nettement plus moche.


mercredi 1 août 2007 à 15:16:57 | Re : Lire le TextEdit a chaque fois que son contenu change

aztcaLISS

salut rt15,

est-ce que tu crois que si j'utilise la fonction GetWindowThreadProcessId() ca puisse fonctionner?

Ex:
-----------------------------------------
LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
{

}

void BindHookOnWindow(HWND hWnd)
{
 DWORD dwProcessId;
 GetWindowThreadProcessId(hWnd, &dwProcessId);
 SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, HINSTANCE hMod, dwProcessId);
}
------------------------------------------

De plus, le parametre hMod m'embete.
Il est ecrit:
[in] Handle to the DLL containing the hook procedure pointed to by the lpfn parameter. The hMod parameter must be set to NULL if the dwThreadId parameter specifies a thread created by the current process and if the hook procedure is within the code associated with the current process.

Si je comprend bien, la fonction GetMsgProc doit se retrouver dans une DLL. Et le parametre hMod est donc le handle de cette DLL.
La DLL sera donc injecter dans l'autre application pour que je puisse capturer les messages.

merci

azt

jeudi 2 août 2007 à 21:32:38 | Re : Lire le TextEdit a chaque fois que son contenu change

rt15

Membre Club Administrateur CodeS-SourceS
Ah vi très bien ça GetWindowProcessId. Connaissais pas. Effectivement, tu auras peut être bien besoin de faire une dll. En même temps entre un exe et une dll, y a tellement peut d'écart que l'on peut se demander si tu peux pas faire exporter une fonction par ton exe. Une fois que tu auras ton hook en place dans le processus tier, tu peux par exemple envoyer un message perso (WM_USER ou supérieur) à ton processus d'origine avec PostMessage.


Cette discussion est classée dans : lire, contenu, change, hook, textedit


Répondre à ce message

Sujets en rapport avec ce message

lire le contenu d'un fichier tel qu'il est [ par ibti25 ] Bonjour,Je m'arrive pas a afficher le contenu de mon fichier comme il est au niveau d'un terminal.Ce que me fait mon code (cidessous), c'est un affich Comment faire pour lire un fichier .txt, et afficher son contenu dans un control CRichEditView [ par isirnet ] lire le contenu d'un fichier en C++ [ par julien20vt ] Je développe sous visual C++, je voudrais lire le contenu d'un fichier et le recopier dans un autre, par contre il ne faut pas que j'utilise le type [C] Impossible de lire le contenu d'une image png [ par JMGR ] Bonjour à tous,j'ai un petit problème :Je veut transférer une image png d'un client vers un serveur.Seulement lorsque je tente de lire le contenu du f lire un fichier en C dont je ne connait pas l'extension [ par benrad ] Bonjourj'ai un fichier avec une extension .dldje suis en train de bosser sur une dll en CJ'aurais voulu savoir comment je pouvais stocker le contenu d C++ Builder TidHTTP le contenu d'un fichier qui change [ par xmustapha ] Bonjour, je dois créer un Update Manger alors je dois faire un fichier d'information (ini) alors voila le contenu de ce fichier uploader dans mon si HELP!Comment lire le contenu d'une variable ds une requete [ par cdkz ] J'ai une requete sql de type insert et j'ai besoin de lire le contenu de la variable que j'appelle ex:CString temp;rs1.GetFieldValue("pkindividu",temp Ouvrie et lire le contenu d'un fichier(débutant inside) [ par psicoblues ] Bonjour, voilà je me lance dans le monde du dévelopement avec pour langage le C.J'ai installé un turbo C sur un MS-DOS 6.2, sur un vieux Pentium.Pour Lire un fichier texte [ par isirnet ] bonjour comment faire pour parcourir le contenu du disque (c:), selectionner un fichier texte, et recuperer le contenu de ce fichier dans une variable lire un fichier tabulé et initialisé mes variables [ par anarana ] Bonjour a tous je suis débutant et je dévlpp un petit apli en visual c++ qui consiste à lire un fichier tabulé de la forme pomme \t  125  \n poire  


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,455 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales