Windows (8.1) API-Aufruf für Control-Alt-Shift + Abbrechen vom Bildschirm zum Herunterfahren?

364
mpag

Explorer.exe ist bei mir abgestürzt, ohne das System vollständig in die Knie zu zwingen. Dies ist nicht das erste Mal, dass dies passiert ist. Grundsätzlich verliere ich die Startleiste + Taskleiste + Systray + Desktopsymbole und verbleibe mit einem dunkelblauen Desktop (kein Hintergrundbild).

Mit Control-Alt-Delete kann ich das Sperrbildschirmmenü (einschließlich Task-Manager) aufrufen. Mit einer Kombination aus Task-Manager, Eingabeaufforderungen und Process Explorer von MS sysinternals kann ich sowohl Standardbenutzerfenster als auch erhöhte Fenster generieren (Details sind bei Bedarf verfügbar). Unter meinem Standard-Login und meinem erhöhten Administrator-Login kann ich jedoch den Explorer nicht neu starten, um den Desktop wiederherzustellen. Das Ausführen von explorer.exe ohne Schalter scheint nichts zu tun. Explorer.exe / n oder / e (oder eine andere dokumentierte Option oder Start mit " START "") gibt mir ein Dateibrowser-Fenster, aber nicht die Startleiste + Taskleiste. Beim Beenden und Neustarten dieser explorer.exe wird auch die Funktionalität nicht wiederhergestellt. Rechtsklicken auf Windows Explorer (das neue Dateiexplorer-Fenster) im Task-Manager und Auswahl von" Neustart " Es wechselt von Prozesse-> Apps zu Prozesse-> Windows-Prozesse (ohne einen geöffneten Dateiexplorer), und der Neustart ändert sich von dort in Prozesse-> Hintergrundprozesse. Es gibt weder einen geöffneten Dateiexplorer noch die Menüoption "Neustart".

Windows-Tastenkombinationen scheinen nicht zu funktionieren, da die Startleiste nicht vorhanden ist. Sie arbeiten nicht mit dem Fokus des gestarteten Datei-Explorer-Fensters. Alt-F4 ohne Fokus oder nach dem Klicken auf den blauen Hintergrund öffnet kein Menü / keinen Dialog. Mit Alt-F4 innerhalb einer Anwendung können diese Fensteranwendungen weiterhin geschlossen werden. Die Up-Down-Lautstärkesignale meiner Kopfhörer werden auch nicht interpretiert, was vom System noch übrig bleibt (ich kann die Lautstärke jedoch über einen anwendungsspezifischen Schieberegler steuern)

Ich kann den Shutdown-Dialog anscheinend nicht wie in Tipp zwei von https://serverfault.com/questions/4464/hidden-commands-on-windows aufrufen, da ich keine Tastenkombinationen oder die Startleiste verwenden kann. Verwenden Sie den folgenden Code, der von diesem und jenem inspiriert wurde :

<!DOCTYPE html> <!-- saved from url=(0016)http://localhost --> <HTML> <HEAD> <TITLE>Start Page</TITLE>  <OBJECT ID="oShell" CLASSID="clsid:13709620-C279-11CE-A49E-444553540000"> </OBJECT>  <STYLE> INPUT  </STYLE>   <SCRIPT LANGUAGE="VBScript"> <!-- function fnStart(sMethod) dim objShell set objShell = CreateObject("shell.application") set objWscr = CreateObject("WScript.Shell") select case sMethod case 0  'Minimizes all windows on the desktop oshell.Shell_MinimizeAll case 1  'Displays the Run dialog box oshell.FileRun case 2  'Displays the Shut Down Windows dialog box 'neither oshell.Shell_Shutdown nor oshell.Shell_ShutdownWindows (supplied in MS docs) are recognized as valid functions of the oshell object. objShell.ShutdownWindows oshell.ShutdownWindows 'objWscr.Run "Rundll Shell32.dll,SHExitWindowsEx" ' returns "The system cannot find the file specified" error box. set objShell = nothing case 3  'Displays the Find dialog box oshell.Shell_FindFilesr case 4  'Displays the Date/Time dialog box oshell.Shell_SetTime  case 5  'Displays the Internet Properties dialog box oshell.Shell_ControlPanelItem "INETCPL.cpl" case 6  'Explores the My Documents folder oshell.Shell_Explore "C:\My Documents" case 7  'Enables user to select folder from Program Files oshell.Shell_BrowseForFolder 0, "My Programs", 0, "C:\Program Files"  case 8  'Opens the Favorites folder oshell.Shell_Open "C:\WINDOWS\Favorites" case 9  'Displays the Taskbar Properties dialog box oshell.Shell_TrayProperties end select  end function  --> </SCRIPT> <SCRIPT type="text/javascript" LANGUAGE="JavaScript"> function logout() { //code (new ActiveXObject("Shell.Application")).ShutdownWindows(); } logout(); </SCRIPT>  </HEAD>  <BODY> <H1>Start...</H1> <INPUT type="button" value="Edit Taskbar Properties" onclick="fnStart(9)"><br> <INPUT type="button" value="Open Favorites Folder" onclick="fnStart(8)"><br> <INPUT type="button" value="Browse Program Files" onclick="fnStart(7)"><br> <INPUT type="button" value="Explore My Documents" onclick="fnStart(6)"><br> <INPUT type="button" value="Modify Internet Properties" onclick="fnStart(5)"><br> <INPUT type="button" value="Set System Time" onclick="fnStart(4)"><br> <INPUT type="button" value="Find a File or Folder" onclick="fnStart(3)"><br> <INPUT type="button" value="Shut Down Windows" onclick="fnStart(2)"><br> <INPUT type="button" value="Run" onclick="fnStart(1)">  <INPUT type="button" value="Minimize All Windows" onclick="fnStart(0)">  </BODY> </HTML> 

Da eine hta-Datei (und das Klicken auf Fenster schließen) nichts tut, aber keine Fehler auslöst. Als htm (l) -Datei in Internet Explorer wird unabhängig von den Einstellungen für die lokale Zone ein Fehler "Permission Denied" ausgegeben. Ich habe ein paar Permutationen dieses Codes ausprobiert, einschließlich: hier, hier

Bei gedrückter Alt-Entf-Taste, gefolgt von "Benutzer wechseln" und direktem Anmelden als Administratorkonto erfolgt die Anmeldung an einem schwarzen Bildschirm mit einem Mauszeiger. Control-Alt-Delete und das Umschalten auf mein Nicht-Admin-Login bringt meinen dunkelblauen "Desktop" ohne Symbole zurück (nach etwa 0,1s Anzeige eines hellblauen | cyan | "Desktop").

Ich frage mich, ob es eine CLSID oder ein Anwendungsobjekt gibt, das aufgerufen werden kann, um das aufzurufen, was von Control-Alt-Shift + Cancel aus dem Dialogfeld zum Herunterfahren aufgerufen wird. Kennen Sie alternativ einen Weg, auf dem ich einen Systemdienst beenden kann, der den Explorer einschließt. Starten Sie den Dienst neu, um mir meinen Desktop zurückzugeben.

Ich möchte lieber nicht herunterfahren / rebooten, da ich diesen PC im Wesentlichen als Server verwende und möchte, dass er so "Always-up" wie möglich ist.

2
Haben Sie versucht, Folgendes auszuführen: "C: \ Windows \ system32 \ userinit.exe", wenn das Neustarten von "explorer.exe" nicht zu einem gut funktionierenden System führt und sich auf andere Konten auswirkt, würde ich die Box neu starten, nur um auf der sichere Seite. Dies ist kein normales Verhalten. Ich denke mal abmelden (logoff.exe) und wieder einschalten hilft nicht? Peter Hahndorf vor 6 Jahren 1
"userinit" war der Zauber, den ich brauchte. Das hat funktioniert. Vielen Dank. (als Antwort einreichen und ich akzeptiere es). Ich habe nicht versucht, sich abzumelden, aber ich nahm an, dass es als Wechselbenutzer nicht funktionieren würde, gefolgt von dem Anmelden als Admin. Das Abmelden von Admin konnte das Problem nicht beheben. mpag vor 6 Jahren 0
userinit rettet den Tag wieder :) mpag vor 6 Jahren 0

1 Antwort auf die Frage

2
Peter Hahndorf

Sie können versuchen, C:\Windows\system32\userinit.exedie Komponente auszuführen, die zuerst ausgeführt wird, wenn sich ein Benutzer anmeldet (Explorer.exe wird als Windows-Shell gestartet).

Sie sind sich nicht sicher, was mit Ihrem System nicht stimmt, aber es userinit.exebefindet sich eine Ebene unter Explorer.exe, sodass es helfen kann.