i want to execute a program(done using c++)when my computer is about to shutdown.i am using Windows Xp.

how can it done??

for XP Professional: from the command prompt execute gpedit.msc
go to: Computer configuration --> windows settings --> scripts (startup/shutdown)
choose Shutdown and add your script/command.

I don't think that's what he wants. I think he wants a windows hook into the system shutdown function such as ExitWindowsEx().

a. gui program: process the WM_QUERYENDSESSION message (with laparam==0)
b. console program: use the SetConsoleCtrlHandler function
c. best: have a windows service running; in the service control handler, (registered with the RegisterServiceCtrlHandlerEx function), handle the SERVICE_CONTROL_PRESHUTDOWN control code.

or you could replace windows' "shutdown.exe" file with your program. But then of course, windows won't be able to shut down, so change the name of shutdown.exe and have your program open it after it is finished.

>>or you could replace windows' "shutdown.exe" file with your program
Horrible idea. And I don't think it will work with XP or Vista because the files in Windows are protected.

Yes, it is a horrible idea. I should have said that before. I do not recommend.

However, I know that it can be done, at least on xp. Files are protected, but its pretty easy to beat windows.

well..thanx for all ur replies. but the problem is..

i have no idea on windows API functions.so,for now i will be satisfied if i get an easy way to solve this problem!!

My method works. However, there a billion and one reasons not to use that method.

I'm not sure if it would work, but you can also try to place your executable in c:\ with the name shutdown.exe and execute c:\windows\system32\shutdown.exe after your program is finished. I don't know if that works, I know you can do something similar for explorer.exe, but I don't know about shutdown.exe.

I also don't recommend that method.