Announcement

Collapse
No announcement yet.

Rebooting properly with Windows from DOS

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Richard L Bianchi
    replied
    Otto - Your welcome.

    Lance - Thanks Very Much

    "rundll32 user32,ExitWindows" Seems to work just fine.

    -Rick

    ------------------

    Leave a comment:


  • OTTO WIPFEL
    replied
    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:


  • Lance Edmonds
    replied
    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:


  • Richard L Bianchi
    replied
    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:


  • OTTO WIPFEL
    replied
    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:


  • Lance Edmonds
    replied
    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:


  • Sebastian Groeneveld
    replied
    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:


  • Clay Clear
    replied
    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:


  • Richard L Bianchi
    replied
    How to 'start shutdown' on WIN95?

    ------------------

    Leave a comment:


  • Amos Vryhof
    Guest started a topic Rebooting properly with Windows from DOS

    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"



    ------------------
    Amos
Working...
X