Windows (8.1) Chamada API para controle-alt-shift + cancelar da tela de desligamento?

2

Explorer.exe caiu em mim sem deixar o sistema totalmente de joelhos. Esta não é a primeira vez que isso aconteceu. Basicamente, eu perco os ícones da barra de tarefas + systray + área de trabalho da Barra de Início + e tenho uma área de trabalho azul escura sólida (sem imagem de fundo).

Por controle-alt-delete eu posso abrir o menu da tela de bloqueio (incluindo o gerenciador de tarefas). Usando uma combinação de gerenciador de tarefas, prompts de comando e o Process Explorer do MS sysinternals, posso gerar janelas de usuário padrão e janelas elevadas (detalhes disponíveis, se necessário). No entanto, sob nenhum dos meus login padrão nem meu login de administrador elevado, parece que eu reiniciei o Explorer para restaurar a área de trabalho. Executando o explorer.exe sem quaisquer opções parece não fazer nada. Explorer.exe / n ou / e (ou qualquer outro interruptor documentado ou iniciado com " START ") me fornece uma janela do navegador de arquivos, mas não a barra de início + barra de tarefas. Matar e reiniciar este explorer.exe também não restaura a funcionalidade. Clicar com o botão direito no Windows Explorer (a nova janela do explorador de arquivos) no gerenciador de tarefas e selecionar "Reiniciar" o transfere de Processos- > Aplicativos para Processos- > Processos do Windows (sem um explorador de arquivos aberto) e reinicia-lo a partir de Processos- > Background Processos de onde não há um explorador de arquivos aberto nem uma opção de menu "Reiniciar".

Os atalhos da tecla do Windows parecem não funcionar, já que a barra de início não existe. Eles não funcionam com a janela do explorador de arquivos iniciado em foco. Alt-F4 com nada em foco ou depois de clicar no fundo azul não traz nenhum menu / diálogo. Alt-F4 de dentro de um aplicativo ainda funciona para fechar o aplicativo da janela conforme apropriado. Os sinais de volume para cima e para baixo dos meus fones de ouvido também não são interpretados, o que permanece acima do sistema (mas eu posso controlar o volume através de um controle deslizante específico do aplicativo).

Parece que não consigo abrir o diálogo de desligamento de acordo com a dica dois do link como eu não posso usar atalhos de teclado ou usar a barra de início. Usando o seguinte código inspirado em this and < href="https://www.eightforums.com/general-support/9179-create-shortcut-real-shutdown-dialog-box.html"> que :

<!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>

Como um arquivo hta (e clicar em Desligar janelas) não faz nada, mas não gera nenhum erro. Como um arquivo htm (l) no Internet Explorer, ele lança um erro de "Permissão negada", independentemente das configurações da zona local. Eu tentei algumas permutações deste código, incluindo: aqui , aqui

Control-Alt-Delete seguido por "alternar usuário" e login direto, pois a conta do administrador resulta em um login em uma tela preta pura com o cursor do mouse. Control-Alt-Delete e voltar ao meu login não-admin traz de volta o meu sólido "desktop" azul escuro sem ícones (após cerca de 0,1s de exibição de um sólido azul-claro | cyan | teal "desktop").

Eu estou querendo saber se há um CLSID ou objeto de aplicativo que pode ser invocado para chamar o que é chamado de controle-alt-shift + cancelar a partir do diálogo de desligamento? Alternativamente, você sabe de alguma maneira que eu posso matar um serviço do sistema que envolve explorador, reinicie o serviço para me dar de volta a minha área de trabalho?

Eu prefiro não desligar / reinicializar, pois estou essencialmente usando este PC como um servidor e quero que ele seja o mais "possível" possível.

    
por mpag 10.05.2017 / 20:17

1 resposta

2

Você pode tentar executar C:\Windows\system32\userinit.exe , que é o componente que é executado pela primeira vez quando um usuário faz logon (inicia o Explorer.exe como o shell do Windows).

Não tenho certeza do que está errado com o seu sistema, mas userinit.exe está um nível abaixo do Explorer.exe, portanto, isso pode ajudar.

    
por 12.05.2017 / 02:52