Explorer.exe 崩溃了,但系统并未完全崩溃。这不是第一次发生这种情况。基本上,我失去了“开始栏”+“任务栏”+“系统托盘”+“桌面图标”,只剩下一个深蓝色的桌面(没有背景图像)。
通过 control-alt-delete,我可以调出锁屏菜单(包括任务管理器)。使用任务管理器、命令提示符和 MS sysinternals 的 Process Explorer 组合,我可以生成标准用户窗口和提升的窗口(如果需要,可提供详细信息)。但是,无论在我的标准登录还是提升的管理员登录下,我似乎都无法重新启动 explorer 来恢复桌面。运行 explorer.exe 而不使用任何开关似乎什么也不做。Explorer.exe /n 或 /e(或任何其他记录开关或使用“开始“) 为我提供了一个文件浏览器窗口,但没有开始栏和任务栏。终止并重新启动此 explorer.exe 也无法恢复功能。在任务管理器中右键单击 Windows 资源管理器(新的文件资源管理器窗口),然后选择“重新启动”,将其从进程->应用程序移至进程->Windows 进程(没有打开的文件资源管理器),从那里重新启动会将其更改为进程->后台进程,从这里既没有打开的文件资源管理器,也没有“重新启动”菜单选项。
由于没有开始栏,Windows 快捷键似乎不起作用。它们在启动文件资源管理器窗口处于焦点时不起作用。在没有任何焦点或单击蓝色背景后,按 Alt-F4 不会调出任何菜单/对话框。在应用程序内按 Alt-F4 仍可根据需要关闭该窗口|应用程序。无论系统剩余什么,我的耳机的上下音量信号也无法解释(但我可以通过特定于应用程序的滑块控制音量)。
我似乎无法按照第二条提示调出关机对话框https://serverfault.com/questions/4464/hidden-commands-on-windows因为我不能使用键盘快捷键或使用开始栏。使用以下代码灵感来自这和那:
<!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 {width: 200}
</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>
作为 hta 文件(单击“关闭窗口”)不会执行任何操作,但不会引发任何错误。作为 Internet Explorer 中的 htm(l) 文件,它会引发“权限被拒绝”错误,无论本地区域的设置如何。我尝试了此代码的几个排列,包括:这里,这里
按 Control-Alt-Delete 后按“切换用户”并直接以管理员帐户登录,结果登录时屏幕为纯黑,只有鼠标光标。按 Control-Alt-Delete 并切换回非管理员登录后,屏幕恢复为纯深蓝色“桌面”,没有图标(约 0.1 秒后显示纯浅蓝色|青色|蓝绿色“桌面”)。
我想知道是否有一个 CLSID 或应用程序对象可以调用来调用关机对话框中的 control-alt-shift + 取消所调用的任何内容?或者,您是否知道有什么方法可以终止包装资源管理器的系统服务,然后重新启动该服务以返回我的桌面?
我宁愿不关机/重启,因为我基本上将这台电脑用作服务器,并希望它尽可能“始终处于运行状态”。
答案1
您可以尝试运行C:\Windows\system32\userinit.exe
用户登录时首先运行的组件(它启动 Explorer.exe 作为 Windows shell)。
不确定您的系统出了什么问题,但它userinit.exe
位于 Explorer.exe 之下一个级别,所以它可能会有所帮助。