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

New! My Passport Wireless Pro Wi-Fi Mobile Storage

Portable wireless storage to offload, edit, and stream anywhere.

High-capacity, wireless mobile storage designed to accompany professional photographers and videographers in the field to easily offload, edit and stream captured photos and high-definition videos.

Question has a verified solution.

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

Suggested Solutions

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…
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

863 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

Need Help in Real-Time?

Connect with top rated Experts

27 Experts available now in Live!

Get 1:1 Help Now