ISIGest
asked on
Get Message WM_ACTIVATE External Process
How i can get an event or windows messages in my application, when a external process's window is activate.
You can do that using a WH_GETMESSAGE hook that filters for that mesage. See http://msdn.microsoft.com/en-us/library/ms997537.aspx ("Win32 Hooks") and http://www.swissdelphicenter.ch/torry/showcode.php?id=1212 for a Delphi example.
WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus
ASKER
Thanks, but i need to hook "many" forms of a single external process...how i can do it?
Well, as the above article explains - to set a global hook (i.e. one that is notified about every message sent to any window), implement the hook proc in a DLL and call 'SetWindowsHookEx()' with the DLL' module handle and a NULL thread ID. In pseudocode, that would be
HINSTANCE hInst = LoadLibrary("myhook.dll");
HOOKPROC pProc = GetProcAddress(hInst,"MyHo ok");
SetWindowsHookEx(WH_GETMES SAGE,pProc ,hInst,0);
HINSTANCE hInst = LoadLibrary("myhook.dll");
HOOKPROC pProc = GetProcAddress(hInst,"MyHo
SetWindowsHookEx(WH_GETMES
As JKR told you can get all MSg for the associated window and then you can refine the message from the message queue. BUT If SetWindowHookEx last parameter is 0 , it will be hooking the message for all of the windows currently running. If this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread.
So their you can put the thread id for your "single external process"
So their you can put the thread id for your "single external process"
ASKER
Thanks a lot. I like it and i think that is my solution...can you post a simple program to do this?
ASKER
I've found a solution like this but in VB, can anyone help me to translate it to Delphi language:
https://www.experts-exchange.com/questions/21083100/Intercepting-WM-ACTIVATE-message-for-any-window-detecting-activation-with-hooks-subclassing.html
https://www.experts-exchange.com/questions/21083100/Intercepting-WM-ACTIVATE-message-for-any-window-detecting-activation-with-hooks-subclassing.html
Not aware of delphi :(
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.