Windows(8.1)API 从关机屏幕调用 control-alt-shift+cancel?

Windows(8.1)API 从关机屏幕调用 control-alt-shift+cancel?

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 之下一个级别,所以它可能会有所帮助。

相关内容