Otto - Your welcome.
Lance - Thanks Very Much
"rundll32 user32,ExitWindows" Seems to work just fine.
-Rick
------------------
Announcement
Collapse
No announcement yet.
Rebooting properly with Windows from DOS
Collapse
X
-
Rick,
Thanks for drawing my attention to Lance's article in the PB Gazette #28 !
Reading it when it arrived in my Inbox, starting with "Windows API", I stopped
reading the rest, sorry Lance
Asked Lance for a copy and I am glad I did. "Shelling" Windows APIs from within
PB-DOS apps is definately an unexpected bonus for a PB-DOS only programmer I
shall have a good look at.
------------------
Leave a comment:
-
Try this: (untested, off the top of my head)
SHELL "RUNDLL32.EXE USER.EXE,ExitWindows"
... you could also try "RUNDLL32.EXE USER32.DLL,ExitWindows,0,0" instead of USER.EXE
... or you could try
SHELL "RUNDLL32.EXE USER32.DLL,ExitWindowsEx,7,0"
... and to force a hung app to terminate, try changing the 7 to 23.
Note 1: the capitalization of the "ExitWindows" and "ExitWindowsEx" portion is case-sensitive!
Note 2: this approach will definitely not work under Windows NT/2000/XP, and for that you will need to use a 32-bit app based on the reboot example shipped with PB/DLL 6.1x.
------------------
Lance
PowerBASIC Support
mailto:[email protected][email protected]</A>
Leave a comment:
-
Otto,
Just finished reading Lance's Article in this months
PowerBASIC Gazette#028.
I'm inspired!
Id like to experiment with SHELL'n and RUN'n some Window
Programs, more than just notepad anyway!
I have a use for shutting down the machine, even if it does
seem silly, some times I forget to run the routines I've
created to copy files to & from floppy drive.
I've tried: rundll32 shutdown
Thats not it, can anybody move me along?
Thanks - Rick
------------------
Leave a comment:
-
Why would you want to SHUT DOWN or RE-BOOT from within a PB-DOS Executable ?
In PURE DOS or in WIN-DOS ?
I have COLDBOOT.COM and WARMBOOT.COM which, when EXECUTED from within a
PB-DOS program or run at the DOS prompt, either shut down the machine or
re-boot it. To be used in PURE DOS only, otherwise the "Windows has not
been shut down properly" ensues !
Noticed that the FORUM now remembers my Password. Thanks Webmaster
------------------
Leave a comment:
-
You can do the same "trick" with the ExitWindowsEx API function... serach the BBS for RUNDLL32 and you should find some information on it.
Note that that API function requires the 'flag' equates to be bitwise ORed together, and some combinations or equates will not work reliably on all platforms.
Additionally, under Windows NT/2000/XP, the process must alter the security priveledge tokens to be allowed to shut down, and that cannot be done from DOS...
However, PB/DLL 6.11 comes with a complete example application that shows how this is achieved.
------------------
Lance
PowerBASIC Support
mailto:[email protected][email protected]</A>
Leave a comment:
-
There is a nice trick in DOS with rundll32...
If you know the function name and the DLL it is in, you can call it with:
rundll32 USER32.DLL,LockWorkstation
(the name of the function is case-sensitive)
You might have guessed that this will lock the computer for the current user... I couldn't find the function to close or reboot Windows, but it's probably in some other DLL in the System32 directory... Maybe somebody else knows this?
------------------
Sebastian Groeneveld
mailto:[email protected][email protected]</A>
Leave a comment:
-
Richard,
If you have PB/DLL 6.0 or higher, do this:
ExitWindowsEx %EWX_REBOOT, 0
ExitWindowsEx %EWX_SHUTDOWN, 0
The first parameter in each one can be combined with:
OR %EWX_FORCE
This will FORCE the indicated action, regardless of programs currently
running. However, you will lose any unsaved information in those programs.
ExitWindowEx %EWX_LOGOFF, 0
will logoff the current user.
Hope this helps!
Regards,
------------------
Clay C. Clear
Leave a comment:
-
Rebooting properly with Windows from DOS
Well...under Windows 2000 I did a test, and my system shut down and rebooted via Windows...
SHELL "start reboot"
------------------
AmosTags: None
Leave a comment: