Herunterfahren aus einer Bat-Datei * ohne * Prozessabschluss in Windows 95 schließen

1345
SCO

Jeder einzelne Leitfaden im Netz besagt, dass RUNDLL USER.EXE, ExitWindows, die über den Befehl run funktioniert, verwendet wird

Bei Ausführung aus einer bat-Datei fordert dieser Befehl, obwohl er funktioniert, eine Bestätigung zum Abbruch der "verbleibenden" Prozesse an. Dieser Prozess ist die cmd-Zeile selbst. Ich konnte es nicht mit 'CALL' aufrufen, aber da der Aufruf eine neue Befehlszeile erstellt, gehe ich davon aus, dass das Ergebnis das gleiche 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 Autostart-Programme zu haben, das die App startet, wartet, bis es mit START / WAIT beendet wird, und dann etwas zum automatischen Herunterfahren von Fenstern verwendet.

1

4 Antworten auf die Frage

0

Es gibt mehrere automatisierte Abschaltmethoden für zeitgenössische Computer (siehe diesen Link und das hier ), aber Windows 95 ist so alt, dass sie möglicherweise nicht funktionieren. (Versuchen Sie trotzdem Ihr Glück.) Wenn alle fehlschlagen, habe ich Angst, dass Sie nur eine Option erstellen könnten. Erstellen Sie beispielsweise eine Windows 95-App, die den Computer herunterfährt.

Nur ein Hinweis, dass Win95 von * kooperativem * Multitasking abhängt, und es kann vorkommen, dass Win95 nicht beendet werden kann, während ein Prozess ausgeführt wird. DrMoishe Pippik vor 8 Jahren 0
@ drmoishe-pippik: Windows 95 verwendet kooperatives Multitasking ** nur ** für 16-Bit-Prozesse. Darüber hinaus gilt das Problem beim Herunterfahren der Blockierung nur für Prozesse, die nicht rechtzeitig auf die Meldungen WM_QUERYENDSESSION und WM_ENDSESSION reagieren. vor 8 Jahren 0
Umm ... Windows 95 hatte kein präemptives Multitasking ... NT war das erste MS-System, das dies tat. DrMoishe Pippik vor 8 Jahren 0
@ DrMoishe Pippik: NT war das erste Microsoft-Betriebssystem, das es tat, ja. Und es kam ** vor ** Windows 95 am 28. Juli 1993. Egal, [Windows 95 unterstützte preemptives Multitasking nur für 32-Bit-Prozesse] (https://support.microsoft.com/de-de/kb/117567) ). vor 8 Jahren 0
0
bill

Wenn Sie Ihr Programm als Shell anstelle des Explorers festlegen, wird es automatisch ausgeführt und die Fenster werden beendet, wenn das Programm beendet wird.

Aus einem Beitrag, den ich 2001 gemacht habe

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

shell=explorer.exe 

zu

shell=progman.exe 

Dann startet Ihr Computer im Win3.11-Schnittstellenmodus.


Von meiner 15 Jahre seit der letzten Aktualisierung der Website http://www.mvps.org/serenitymacros

Windows beenden

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

Windows herunterfahren

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

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), kopieren Sie ihn und benennen Sie ihn in Windows neu starten. Bearbeiten Sie das Programmblatt in den Eigenschaften. Ändern Sie die Befehlszeile in:

C:\WINDOWS\command.com /C exit 

Vergewissern Sie sich, dass Close On Exit aktiviert ist. Aktivieren Sie im Dialogfeld "Erweitert" die Option Aktuelle MSDos-Konfiguration verwenden, um Windows zu beenden, und starten Sie Windows ohne Neustart erneut. Aktivieren Sie Warnen vor dem Aufrufen des MSDos-Modus, wenn vor dem Beenden und Neustarten eine Bestätigung erforderlich ist. Der MSDos-Modus muss geprüft werden.

Alternativ können Sie die Funktion ExitWindowsExec verwenden. Dies führt zu MSDos, um ein Programm auszuführen, da jedoch kein Programm Windows neu gestartet wird. Tippen Sie in eine Verknüpfung oder in das Dialogfeld "Start - Ausführen".

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

Dialogfeld "Herunterfahren"

Diese Registrierungsdatei legt die Standardauswahl im Dialogfeld Herunterfahren fest. Windows 95B und IE4 merken sich die zuletzt gewählte Einstellung. Um den Standard für diese Versionen festzulegen (und nicht die letzte Aktion), fügen Sie die folgende Befehlszeile hinzu C:\Windows\Winstart.bat( Winstart.batggf. erstellen ). Denken Sie daran, den kurzen Dateinamen zu verwenden.

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

Oder über diese Befehlszeile eine Verknüpfung erstellen und in den Startordner kopieren.

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 das SHExitWindowsEx

Verwenden der User.exe & User32.dll Exit Windows-Funktionen erlauben keine Kontrolle darüber, welche Art des Herunterfahrens vorgeformt wird, da die Parameter nicht übergeben werden. Sie funktionieren als ob 0 übergeben wird. Dies ist das Herunterfahren für ExitWindows und Logoff für ExitWindowsEx. Eine undokumentierte Funktion SHExitWindowsEx in Shell32.dll, die der Explorer verwendet, scheint Parameter zu verwenden.

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 wird heruntergefahren und das Schließen von Anwendungen erzwungen, und eine implizite Abmeldung.

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 Problemumgehung.

-1
Zoredache

Versuchen Sie, den obigen Befehl mit aufzurufen, startwenn Sie ihn im Hintergrund ausführen und keine cmd.exe warten lassen. Ich kenne die 9x-Syntax nicht aus meinem Kopf, sondern führe eine start /?an der Kommandozeile aus.

Ich weiß, aber ich habe es 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 vor 8 Jahren 0
-1
Botmaster
%windir%\System32\shutdown.exe -r -f 

Hinzufügen des -fForce-Systems zum Herunterfahren oder Neustarten In Windows 95 wäre der Pfad C: \ Windows \ Command, der auf diese Website verweist

Ich bin * ziemlich sicher *, dass Windows 95 nicht das `system32`-Verzeichnis hatte, geschweige denn shutdown.exe ... a CVn vor 8 Jahren 0
bist du sicher? https://www.youtube.com/watch?v=QtUaOHPi3II Botmaster vor 8 Jahren 0