Windows Hooks: Hooking a closing app

Posted on 2004-04-19
Last Modified: 2008-02-26
Hi all,
I've been working on this solution for quite some time. Im trying to display a message everytime an app closes. So far i have been able to code a program that displays a message every time an app closes using Win32 API's CBTProc Callback function


      if(code == HCBT_DESTROYWND){
      return CallNextHookEx(... , .., .. , ..);

a was able to display a message "Closed!!" every time media player closed but it's a problem for winword.exe .. iexplore.exe and some of the program files items on the desktop.. when i execute these "Closed!!" appears before the window is exited by the user. Would anyone know how to properly hook applications using SetWindowsHookEx() API ?
Question by:ogoy
  • 2

Expert Comment

ID: 10866863
Do you mean to say that without the user performing any action to close the window the hook gets the close event ?

I don't suppose so.Just checking.
I assume that the event is received just before the window is not visible anymore in case of IE,MS Word etc.....right?

Will WH_GETMESSAGE work for you instead of WH_CBT ? But yes you will get all the windows messages. You have
to apply a filter for WM_CLOSE i think.

Just thinking aloud..........the problem you are facing could be because the event is posted before the windows is actually
made invisible by the applications in question........again.....not sure...


Author Comment

ID: 10948870
Thanks for replying. I was hoping email notifications for this forum would alert me for any posts but it didn't.. i tried CallWndProc, GetMsgProc.. and the rest of the win32 api for SetWindowsHookEx(..) but the "Closed!" message still appeared even when im not closing it..

Anyway i found a solution that required me to do a SetWindowLong(..) that opens a window handle to the activated window.. this allowed me to trap closing windows events properly.. the site i got the idea from was

Expert Comment

ID: 10948973
Good for you.
Yeah I have also experience a long delay in the mail notification.But I generally get it some day :-)

All the best for your project

Accepted Solution

modulo earned 0 total points
ID: 11728407
PAQed, with points refunded (250)

Community Support Moderator

Featured Post

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An Outlet in Cocoa is a persistent reference to a GUI control; it connects a property (a variable) to a control.  For example, it is common to create an Outlet for the text field GUI control and change the text that appears in this field via that Ou…
Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
The goal of this video is to provide viewers with basic examples to understand how to use strings and some functions related to them in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question