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
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
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
net send [ par kedric ]
bonjourd je voudrais savoir comment je peut utiliser la commande net send le plus simplement possible on ma dis en une ligne que je pouvais utiliser l
API [ par T103 ]
je n'arrive po a utiliser l API getcursorposition en C#si kelkun sait komen la declarer et l'utiliser merci beaucoup
Livres en rapport
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|