|
|
1.1 ! root 1: Sample: BOB (Big Orange Button) ! 2: ! 3: Summary: ! 4: ! 5: The BOB sample demonstrates the steps necessary to reboot ! 6: or shutdown the machine in Win32/NT and Win32s/MS-DOS ! 7: programmatically. A very similar method can be used to log ! 8: a user off. Basically the steps necessary are as follows ! 9: ! 10: 1) Check to see if the machine is running Win32/NT; if so ! 11: ! 12: a) first get the security token. ! 13: b) Fetch the LUID for the SeShutdownPrivilege; this is only ! 14: required for rebooting and shutting down the machine. ! 15: c) Enable the shut down privilege. ! 16: ! 17: 2) Use ExitWindowsEx() to log off, shut down or reboot the ! 18: machine. ! 19: ! 20: More Information: ! 21: ! 22: Obviously one should use this API with care *and* with plenty ! 23: of warning so a user is not rudely surprised. ! 24: ! 25: There are two methods of preventing the system from shutting ! 26: down one is at the App level and the other the System level. ! 27: At the application level what one needs to process is the ! 28: WM_QUERYENDSESSION so it can ask the user if they wish to save ! 29: any data which has not been back up to disk. Finally return ! 30: TRUE assuming the process can shut down safely or FALSE if ! 31: it can not (NOTE this will not keep one from dying if the ! 32: parameter to ExitWindowsEx() was or'ed with EXW_FORCE). ! 33: At the system level one is able to remove the rights of ! 34: certain users/groups to reboot the machine. This is done ! 35: via the UserManager applet. ! 36: ! 37: Enjoy
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.