Вызов API Windows (8.1) для control-alt-shift + отмены с экрана выключения?
222
mpag
Explorer.exe обрушился на меня, не поставив систему полностью на колени. Это не первый раз, когда это произошло. По сути, я теряю панель запуска + панель задач + системный значок + значки рабочего стола и остаюсь сплошным темно-синим рабочим столом (без фонового изображения).
С помощью control-alt-delete я могу вызвать меню экрана блокировки (включая диспетчер задач). Используя комбинацию диспетчера задач, командных приглашений и Process Explorer MS sysinternals, я могу генерировать как стандартные пользовательские окна, так и окна с повышенными правами (подробности доступны при необходимости). Тем не менее, ни под моим стандартным логином, ни под учетной записью администратора с повышенными правами я не могу перезапустить проводник для восстановления рабочего стола. Запуск explorer.exe без каких-либо ключей, похоже, ничего не делает. Explorer.exe / n или / e (или любой другой задокументированный переключатель или запуск с « START»") дает мне окно браузера файлов, но не панель запуска + панель задач. Уничтожение и перезапуск этого explorer.exe также не восстанавливают функциональность. При щелчке правой кнопкой мыши на проводнике Windows (новом окне проводника файлов) в диспетчере задач и выборе« Перезапустить »удаляется из меню «Процессы» -> «Приложения» - «Процессы» -> «Процессы Windows» (без проводника открытого файла) и перезапуск оттуда изменяет его на «Процессы» -> «Фоновые процессы», из которого нет ни открытого проводника файлов, ни пункта меню «Перезагрузка».
Сочетания клавиш Windows, кажется, не работают, так как панель запуска не существует. Они не работают с запущенным окном проводника в фокусе. Alt-F4, в котором ничего не находится в фокусе или после нажатия на синем фоне, не вызывает меню / диалога. Alt-F4 из приложения все еще работает, чтобы закрыть это окно | приложения соответствующим образом. Сигналы увеличения и уменьшения громкости моих наушников также не интерпретируются независимо от того, что остается в системе (но я могу регулировать громкость с помощью ползунка для конкретного приложения).
<!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>
Поскольку hta-файл (и нажатие на кнопку «Завершение работы») ничего не делает, но не выдает никаких ошибок. Как файл htm (l) в Internet Explorer он выдает ошибку «Отказано в доступе», независимо от настроек локальной зоны. Я пробовал несколько перестановок этого кода, в том числе: здесь, здесь
Control-Alt-Delete с последующим «переключением пользователя» и прямым входом в систему в качестве учетной записи администратора приводит к входу в чисто черный экран с курсором мыши. Control-Alt-Delete и переключение обратно на мою учетную запись без прав администратора возвращает мой сплошной темно-синий «рабочий стол» без значков (примерно через 0,1 с отображения сплошного светло-голубого | голубого | рабочего стола «рабочий стол»).
Мне интересно, есть ли CLSID или объект приложения, который может быть вызван для вызова того, что вызывается из control-alt-shift + cancel из диалога выключения? В качестве альтернативы, знаете ли вы каким-либо образом, как я могу убить системную службу, которая закрывает проводник, перезапустить службу, чтобы вернуть мне мой рабочий стол?
Я бы предпочел не выключать и не перезагружать компьютер, поскольку я по сути использую этот компьютер в качестве сервера и хочу, чтобы он работал как можно быстрее.
Вы пробовали запустить: `C: \ Windows \ system32 \ userinit.exe`, если перезапуск` explorer.exe` не приводит к хорошему поведению системы и влияет на другие учетные записи, я бы перезапустил окно, просто чтобы быть на безопасной стороне. Это не нормальное поведение. Я думаю, выход из системы (logoff.exe) и снова включить не помогает?
Peter Hahndorf 6 лет назад
1
`userinit` был магией, в которой я нуждался. Это сработало. Благодарю. (отправь как ответ и я приму это). Я не пробовал выходить из системы, но я предполагал, что он не будет работать в качестве пользователя-переключателя, за которым следует вход в качестве администратора, выход из системы администратора не исправил это.
mpag 6 лет назад
0
userinit снова спасает день :)
mpag 6 лет назад
0
1 ответ на вопрос
2
Peter Hahndorf
Вы можете попробовать запустить C:\Windows\system32\userinit.exeкомпонент, который запускается при входе пользователя в систему (он запускает Explorer.exe в качестве оболочки Windows).
Не уверен, что не так с вашей системой, но userinit.exeнаходится на один уровень ниже Explorer.exe, так что это может помочь.