Frage deutsch
~~~~~~~~~~~~~
Wie kann ich unter Windows den PC herunterfahren oder neu booten ?
 

Question English
~~~~~~~~~~~~~~
How can I shutdown or reboot the computer from a QBasic program?
 

Antwort 1
~~~~~~~~~~
[ von Storm-Master (
Storm-Master*gmx.de ) und Neo 386 ( http://www.cwsearch.de ), 26.4.02 - 15.08.2002 ]
 

Wie kann mein QB-Programm einen Computer-Neustart unter Windows bewirken?
 
Dafür gibt es mittlerweile recht viele Möglichkeiten. Hier sind einige davon:
 
*** Variante 1 (für DOS)
OUT &H64, &HFE 'wirkt wie der "Affengriff" <Strg + Alt + Entf>
 
*** Variante 2 (für Windows 95/98/Me, nicht für NT-basierte Systeme)
Windows beenden: shell "rundll32 user,exitWindows"
Windows Neustart: shell "rundll32 user,ExitWindowsExec"
Windows 98 starten: shell "rundll32 shell32,SHExitWindowsEx 0"
Windows 98 beenden: shell "rundll32 shell32,SHExitWindowsEx 1"
Windows 98 PC booten: shell "rundll32 shell32,SHExitWindowsEx 2"
Windows 98 Explorer neu starten: shell "rundll32 shell32,SHExitWindowsEx -1"
Windows radikal beenden: shell "rundll32 krnl386.exe, exitkernel"
 
Natürlich kommt vor den Befehl das Windowsverzeichnis. Z.B.: "C:\WINDOWS\"
 
*** Variante 3 (für Windows NT/2000/XP/.NET, nicht für NT-basierte Systeme):
Unter Windows NT/2000/XP/.NET funktioniert der Befehl ...
 
SHELL "RUNDLL32 USER,EXIT WINDOWS"
SYSTEM
 
... nicht mehr. Dort benötigtst du ein
benötigst du dafür ein Interfaceprogramm, das unter Windows läuft. Ein empfehlenswertes Interfaceprogramm ist EKS [ExternalKernelSystem] das auf http://www.xxl-software.com zum Herunterladen bereitsteht. Downloade und teste das mal. Das funktioniert unter jeder Version von Windows und bietet noch einige andere Goodies.)
 
 
*** Variante 4 (für DOS und Windows)
 
SUB SystemReset
DEF SEG=&HFFFF
CALL ABSOLUTE(0)
END SUB
'
SUB SystemKaltstart
DEF SEG=&H40
POKE &H72, &H0
POKE &H73, &H0
DEF SEG=&HFFFF
CALL ABSOLUTE(0)
END SUB
'
SUB SystemWarmstart
DEF SEG=&H40
POKE &H72, &H34
POKE &H73, &H12
DEF SEG=&HFFFF
CALL ABSOLUTE(0)
END SUB
 
 
Antwort 2
~~~~~~~~~~
Herunterfahren kannst du Ihn (unter Windows) folgendermaßen:
 
SHELL "START RUNDLL32 User,ExitWindows"
SYSTEM 'Muss unmittelbar danach erscheinen!
 
Neustart geht mit 'nem Interrupt.
Schau dafür auf
http://www.goqb.de in die Download-Rubrik.
 
 

Antwort 3
~~~~~~~~~~
[ von Storm-Master (
Storm-Master*gmx.de ) 3.2002]
.
Willst Du den Computer in den Power Off Modus versetzen, dann lade einfach von meiner Homepage
www.storm-master.de.vu/ das Tool POWEROFF.EXE herunter - unter "Downloads -> DOS-Tools -> POWEROFF.EXE.
 
Es lässt sich auch einfach in ein QB-Programm einbinden.
 
Willst Du einen echten harten Reset erzeugen, dann benutze folgenden Befehl mit SHELL:
 
shell "rundll32.exe shell32.dll,SHExitWindowsEx x"
 
Das "x" am Schluss ersetzen durch:
0 - LOGOFF
1 - SHUTDOWN
2 - REBOOT
4 - FORCE
8 - POWEROFF
 
Natürlich kommt vor den Befehl der Pfadname des Windowsverzeichnisses,z.B.:"C:\WINDOWS\"
 
 

Antwort 4
~~~~~~~~~~
[ von verschiedenen Teilnehmern des QB-Forums, 8.10.2003 - 13.1.2006 ]
 
*** Computer herunterfahren und neustarten unter Windows 2000/XP
Unter Windows 2000 und XP aufwärts funktioniert RUNDLL32 nicht. Dort musst Du SHUTDOWN.EXE nehmen. Und zwar so (es sind jeweils verschiedene Alternativen genannt):
 
*** Windows herunterfahren
- SHELL "C:\WINDOWS\system32\shutdown.exe -s"
- SHELL "%WINDIR%\SYSTEM32\SHUTDOWN.EXE -S"
- SHELL "shutdown -s" : SYSTEM
 
*** Computer neustarten
- SHELL "%WINDIR%\SYSTEM32\SHUTDOWN.EXE -R"
- SHELL "c:\windows\system32\shutdown -r -t 0"
 
Zusätzlich kann man noch ein -f oder ein -t xx anhängen um Programme ohne Nachfrage zu beenden bzw. eine Zeiteinstellung vornehmen (z.b -t 10 für 10 sek.).
 
Die Shutdown.exe, die Du mit dem SHELL-Befehl öffnest, befindet sich im Ordner System32. Aber nur unter XP; bei Win.98 kannst Du lange nach dieser Datei suchen.
 
Mit SHUTDOWN kann man noch mehr machen. Um darüber mehr zu erfahren, musst Du
...\SHUTDOWN.EXE /? eingeben. In dem dann erscheinenden Hilfetext sind dann alle Parameter und ihre Bedeutungen erklärt.
 
*** Externes Tool "POWEROFF"
Zum Ausführen von SHUTDOWN.EXE werden unter Windows XP Administrator-Rechte benötigt. Wenn Du diese nicht aktivieren willst, kannst Du statt SHUTDOWN.EXE auch das bewährt externe Tool "POWEROFF" von Jorgen Bosman verwenden. POWEROFF ist Freeware und kann im Internet heruntergeladen werden. Das Downloadpaket enthält eine ausführliche Bedienungsanleitung. Die Kommandozeilen-Optionen kannst Du mit POWEROFF /? erfragen.

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]