Accueil > Forum > > > > Comment utiliser le HOOK pour capturer les messages Windows
Comment utiliser le HOOK pour capturer les messages Windows
samedi 13 septembre 2008 à 03:18:24 |
Comment utiliser le HOOK pour capturer les messages Windows
|
samedi 13 septembre 2008 à 10:56:10 |
Re : Comment utiliser le HOOK pour capturer les messages Windows

MorpionMx
|
Je crois que le message est passé a la trappe ? Ou alors il faut juste lire le titre ?  Mx MVP C#
|
|
samedi 13 septembre 2008 à 21:15:56 |
Re : Comment utiliser le HOOK pour capturer les messages Windows

AlexBob789
|
Bonjour,
Voci le message original:
Voilà cela un moment je tente de capturer les messages windows entrant et sortant de outlook 2003, mais je n'arrive pas. En faite qd l'usager clicque sur le boutton de send ou receive du Menu de Outlook ou qu'un email arrive dans le repertoire Inbox il ya des messages windows qui sont déclenchés, et j'aimerai les capturer.
Pour cela j'utilise la fonction SetWindowsHookEx mais cela ne marche pas. Voici brievement le code:
private IntPtr FindWindHandle(string aProcName)
{
IntPtr lProcNameHandle = IntPtr.Zero;
Process[] processes = Process.GetProcessesByName(aProcName);
if (processes.Length > 0)
if (processes[0].Threads.Count > 0)
lProcNameHandle = processes[0].Handle;
return lProcNameHandle;
}
private IntPtr FindWindThreadIDByGetWindowThreadProcessId()
{
return GetWindowThreadProcessId(GetOutlookThread(), IntPtr.Zero);
}
private IntPtr GetOutlookThread()
{
IntPtr myWindow = IntPtr.Zero;
Process[] processes = Process.GetProcessesByName("Outlook" );
foreach (Process p in processes)
{
myWindow = p.MainWindowHandle;
}
return myWindow;
}
public void SetHook()
{
IntPtr hook1 = SetWindowsHookEx(HookType.WH_GETMESSAGE, myGetAllMsg, IntPtr.Zero, AppDomain.GetCurrentThreadId()); // hook1 a une valeur mais ne capture pas les messages
IntPtr outlookThreadId = FindWindThreadIDByGetWindowThreadProcessId(); // me retourne le threadid dans lequel roule Outlook
HookProc myGetAllMsg = new HookProc(GetAllMsg);
IntPtr hook2 = SetWindowsHookEx(HookType.WH_GETMESSAGE, myGetAllMsg, IntPtr.Zero, (Int32)outlookThreadId); // Je tente de faire le hook sur le threadID de outlook, mais Hook2 a la valeur 0, cela veut dire que le hook n'a pas marché
IntPtr hook3 = SetWindowsHookEx(HookType.WH_GETMESSAGE, myGetAllMsg, FindWindHandle("Outlook" ), 0); // Je tente de faire le hook sur le handle de outlook, Hook3 a aussi le valeur 0
}
Je ne comprends pas pkoi quand j'utlise AppDomain.GetCurrentThreadId le hook a une valeur mais qd je considère le threadId dans le process Outook roule(j'espère que j'ai le bon threadID)
Voilà en gros. Votre aide me sera le bienvenu pour m'éclaircir dans cette gymnastique cérébrale du HOOK.
|
|
dimanche 14 septembre 2008 à 10:15:21 |
Re : Comment utiliser le HOOK pour capturer les messages Windows

Bidou
|
Hi, Je ne sais pas, mais le code de GetOutlookThread me paraît quelques peu étrange après un rapide coup d'oeil. Seul le dernier IntPtr de la liste de process sera retourné, non?
|
|
dimanche 14 septembre 2008 à 15:30:48 |
Re : Comment utiliser le HOOK pour capturer les messages Windows

AlexBob789
|
Tu as raison, mais en faite tu ne peux avoir q'une seule instance de Outlook d'ouvert et dans ce cas c'est l'unique handle de Outlook qui sera retourné, d'où je n'avais pas besoin de l'avoir dans un foreach.
Merci
|
|
Cette discussion est classée dans : windows, utiliser, messages, capturer, hook
Répondre à ce message
Sujets en rapport avec ce message
les API windows et c# [ par otofraise ]
Bonjour a tous,Habitue au c++, je debute avec c# et je dois dire que je suis pomme .J'aimerais utiliser les api windows mais voila, je ne retrouve pas
Post-filtrage des messages Windows [ par DarkenerDaemonEx ]
Bonjour,L'interface IMessageFilter permet de pré-filtrer des messages et peut aussi les empêcher d'arriver à destination, mais dans mon cas il faudrai
utiliser progressBar dans un sous programme [ par corine ]
salut,j'ai créé un windows form en C# avec visual studio. Dans ce windows form j'ai inséré une progressBar.J'ai également mis dans les menus de mon wi
Utiliser les icones windows (open, close, save...) [ par iliak ]
BonjourJe souhaite utiliser les icônes systèmes (ouvrir, fermer, sauver, imprimer....) dans mon appli C# mais je ne sais pas trop trop comment faire.
Masquer les messages d'erreur Windows AU SECOURS !!!! [ par gerbito ]
Bonjour, Quelqu'un connaîtraît-il une méthode valable pour masquer les messages d'erreur Windows ? En effet j'ai une appli développée en C# dont l
[C# => Bar] Interception de messages windows (imprimante, audio, vidéo) [ par magicx92 ]
Bonjour à tous.Je suis étudiant en info (5e année) et pour un mémoire de recherche j'ai besoin d'intercepter un certain nombre d'informations de windo
Utilisation du log4net dans une application windows [ par yayasam ]
salut, je veux utiliser le log4net pr avoir des traces, je développe une application windows en c#, et ma question c'est comment peut on utiliser le l
trapper les messages sous WinCE 5.0 [ par churrros ]
J'ai étudié certains tuto pour essayer d'attrapper les messages envoyés à ma fenêtre et empêcher qu'elle soit déplacée, mais j'y arrive pas. J'utilise
API Hook (printdialog) [ par Buster89 ]
Bonjour, Je souhaite remplacer le printdialog par défaut de windows par ma propre form de sorte que lorsque l'on clique sur "imprimer" que ce soit su
Utiliser une application Windows [ par folivan ]
Bonjour tout le monde,Je cherche le moyen d'utiliser "Paint" (pbrush.exe) dans mon application en C#.Mon but : Ouvrir "Paint" sans qu'il soit visible
Livres en rapport
|
Derniers Blogs
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
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 Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.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 LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|