Herunterfahren aus einer Fledermausdatei * ohne * Schließen der Prozessbestätigung in Windows 95

1

Jede einzelne Anleitung im Internet sagt, dass RUNDLL USER.EXE, ExitWindows verwendet werden soll, was ... über den Befehl run funktioniert

Wenn dieser Befehl jedoch aus einer bat-Datei ausgeführt wird, fordert er, obwohl er funktioniert, eine Bestätigung an, um die verbleibenden Prozesse abzubrechen. Dieser Prozess ist die cmd-Zeile selbst. Ich konnte es nicht mit 'CALL' aufrufen, aber da call eine neue Befehlszeile erstellt, erwarte ich, dass das Ergebnis dasselbe ist.

Dies ist nur eine Windows 95-Frage. Eine virtuelle Maschine wird nach dem Ausführen einer Anwendung automatisch heruntergefahren. Die Idee ist im Grunde, ein Skript im Ordner Startup programs zu haben, das die App startet, wartet, bis sie mit START / WAIT beendet wird, und dann Windows automatisch herunterfährt.

SCO
quelle

Antworten:

1

Wenn Sie Ihr Programm als Shell anstatt als Explorer festlegen, wird es automatisch ausgeführt und Windows wird heruntergefahren, wenn das Programm beendet wird.

Von einem Beitrag habe ich im Jahr 2001 gemacht

Kopieren Sie es nach c: \ windows. Wenn Sie bearbeiten c:\windows\system.ini und ändern

shell=explorer.exe 

zu

shell=progman.exe

Dann startet Ihr Computer im Win3.11-Schnittstellenmodus.


Von meiner seit 15 Jahren zuletzt aktualisierten Website http://www.mvps.org/serenitymacros

Beenden von Windows

Die ersten drei Abschnitte stammen von Tweak95 und sind auf der Downloadseite verfügbar. Der vierte Abschnitt ist Änderungen mit Win98.

Fahren Sie Windows herunter

Ein Befehl zum Beenden von Windows 95. Dies kann nur zum Herunterfahren, nicht zum Neustarten oder zum Beenden von MSDOS verwendet werden. Um zu msdos zurückzukehren, geben Sie ExitToMsDos ein, das die gleichnamige Pif-Datei ausführt. Platzieren Sie den Befehl in einer Verknüpfung oder einer Batch-Datei.

C:\WINDOWS\RUNDLL32.EXE user.exe,ExitWindows

Starten Sie Windows neu

Um Windows neu zu starten, kopieren Sie "Exit To Dos.pif" (der PIF-Teil ist ausgeblendet) und kopieren Sie ihn und benennen Sie ihn in "Windows neu starten" um. Bearbeiten Sie das Programmblatt in den Eigenschaften. Ändern Sie die Befehlszeile in:

C:\WINDOWS\command.com /C exit

Stellen Sie sicher, dass Beim Beenden schließen aktiviert ist. Aktivieren Sie im Dialogfeld "Erweitert" die Option "Aktuelle MSDos-Konfiguration verwenden", um Windows ohne Neustart zu beenden und neu zu starten. Aktivieren Sie die Option "Vor dem Aufrufen des MSDos-Modus warnen", wenn vor dem Beenden und Neustarten eine Bestätigung erforderlich ist. Der MSDos-Modus muss überprüft werden.

Eine alternative Möglichkeit ist die Verwendung der ExitWindowsExec-Funktion. Dadurch wird MSDos beendet, um ein Programm auszuführen, da jedoch kein Programm angegeben ist, wird Windows neu gestartet. Tpye in eine Verknüpfung oder ein Start - Ausführen - Dialogfeld.

C:\WINDOWS\RUNDLL.EXE user.exe,ExitWindowsExec

Dialogfeld "Herunterfahren"

Diese Registrierungsdatei legt die Standardeinstellung im Dialogfeld "Herunterfahren" fest. Windows 95B und IE4 behalten die zuletzt gewählte Einstellung bei. Fügen Sie zum Festlegen der Standardeinstellung für diese Versionen (anstelle der letzten Aktion) die folgende Befehlszeile hinzu C:\Windows\Winstart.bat (erstellen Winstart.bat wenn erforderlich). Denken Sie daran, den kurzen Dateinamen zu verwenden.

Regedit C:\<Path to Reg File>\ShutDown.Reg

Oder diese Befehlszeile zu einer Verknüpfung und legen Sie es in den Autostart-Ordner.

Regedit /s C:\<Path to Reg File>\ShutDown.Reg

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
'1=first choice in dialog box, 2=second choice, ect.
"Shutdown Setting"=dword:00000001

Über die SHExitWindowsEx

Verwenden der User.exe & amp; Mit den Windows-Funktionen zum Beenden von User32.dll kann nicht gesteuert werden, welche Art des Herunterfahrens ausgeführt wird, da Parameter nicht übergeben werden. Sie verhalten sich so, als ob 0 übergeben wird. Eine undokumentierte Funktion SHExitWindowsEx in Shell32.dll, die von Explorer verwendet zu werden scheint, benötigt Parameter.

rundll32.exe shell32.dll,SHExitWindowsEx [optional number in hex]

Aktionswert in hex

EWX_LOGOFF 0 
EWX_SHUTDOWN 1 
EWX_REBOOT 2 
EWX_FORCE 4 
EWX_POWEROFF
for machines that turn off their own power 8 

Diese Werte können addiert werden, z. B. 5 bedeutet Herunterfahren und Erzwingen des Schließens von Anwendungen und implizites Abmelden.

Beachten Sie, dass es keinen Neustart ohne Neustart gibt. Dazu muss ein Parameter von 42 (hex) an ExitWindows in User.exe übergeben werden. Dies kann nicht über die Befehlszeile erfolgen. Siehe Tipp oben für eine Lösung.

bill
quelle
0

Rufen Sie den obigen Befehl mit auf start Sie sollten es im Hintergrund ausführen lassen und keine cmd.exe warten lassen. Ich kenne die 9x-Syntax nicht ganz genau, aber a start /? an der Befehlszeile.

Zoredache
quelle
Ich weiß, aber das habe ich versucht. Starten Sie RUNDLL USER.EXE, ExitWindows gefolgt von EXIT (es ist eines dieser nervigen permanenten Fenster) scheint ... nichts zu tun. Ich habe auch Variationen basierend auf den Syntaxbeispielen ausprobiert, die ich gefunden habe: Start "" RUNDLL USER.EXE, ExitWindows ", Start" "RUNDLL USER.EXE, ExitWindows usw.
SCO
0

Es gibt verschiedene automatische Abschaltmethoden für moderne Computer (siehe dieser Link und diese ) aber Windows 95 ist so alt, dass ich sie möglicherweise nicht arbeiten. (Trotzdem, versuchen Sie Ihr Glück.) Wenn alles fehlschlägt, haben Sie leider nur die Möglichkeit, sich eines selbst zu schaffen. Erstellen Sie eine Windows 95-App, die den Computer herunterfährt.


quelle
Nur eine Anmerkung, von der Win95 abhängt Genossenschaft Multitasking, und es kann vorkommen, dass es nicht heruntergefahren werden kann, während ein Prozess ausgeführt wird.
DrMoishe Pippik
@ drmoishe-pippik: Windows 95 verwendet kooperatives Multitasking nur für 16-Bit-Prozesse. Darüber hinaus betrifft das Problem der Blockierung des Herunterfahrens nur Prozesse, die nicht rechtzeitig auf die Nachrichten WM_QUERYENDSESSION und WM_ENDSESSION reagieren.
Umm ... Windows 95 hatte kein präventives Multitasking ... NT war das erste MS-System, das dies tat.
DrMoishe Pippik
@DrMoishe Pippik: NT war das erste Microsoft OS, das das getan hat, ja. Und es kam Vor Windows 95, am 28. Juli 1993. Unabhängig davon, Windows 95 unterstützte preemptives Multitasking nur für 32-Bit-Prozesse .
0
%windir%\System32\shutdown.exe -r -f

Hinzufügen -f erzwingt das Herunterfahren oder Neustarten des Systems. In Windows 95 wäre der Pfad C: \ Windows \ Command in Bezug auf Diese Internetseite

Botmaster
quelle
Ich bin ziemlich sicher dass Windows 95 hatte nicht die system32 Verzeichnis, geschweige denn shutdown.exe ...
a CVn
bist du sicher? youtube.com/watch?v=QtUaOHPi3II
Botmaster