I have a windows program deployed using WPKG that runs hidden to the user, and may need to reboot sometimes. In order to prevent the user from losing work, I would like a dialog box with a message, giving the logged in user the option to delay the shutdown for a bit. This is something similar to the way Automatic Update does it.
I've looked at a multitude of shutdown utilities which give the user a message, but none which give them a little control to delay the shutdown.
A quick and dirty option would be to use PSSHUTDOWN in the PSTOOLS suite from Microsofts Sysinternals.
One of the switches available is
-c
. It allows the user to stop the reboot by pressing the Cancel button.You could set this to loop every X minutes until the user is ready to have their machine rebooted.
A neater way to do this would be to write your own VBscript. This could provide a snazzy dialog box offering, for example, Yes and No. If they clicked No, it would sleep for X minutes before asking again. This would be very easy to write.
Edit: Well, I was bored so I made the script for you. Enjoy.
the C:\WINDOWS\system32\shutdown.exe utility seems to do the job for me.]
try the following: shutdown -r -t 500 -c "happy user message"
EDIT: The automatic updates reboot message is more of a nag screen with a time-out that has a reboot button. Easy enough to duplicate the code for this, although you may need to ask this on stackoverflow :)