Link to home
Start Free TrialLog in
Avatar of ISIGest
ISIGestFlag for Italy

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.
Avatar of jkr
jkr
Flag of Germany image

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.
Avatar of mannujam
mannujam

WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus
Avatar of ISIGest

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,"MyHook");

SetWindowsHookEx(WH_GETMESSAGE,pProc,hInst,0);
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"

Avatar of ISIGest

ASKER

Thanks a lot. I like it and i think that is my solution...can you post a simple program to do this?
Avatar of ISIGest

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
Not aware of delphi  :(
ASKER CERTIFIED SOLUTION
Avatar of jkr
jkr
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial