1

Я задал этот же вопрос о переполнении стека из-за ошибки.

У меня есть компьютер, который не включается, если он находится в расширенном режиме и подключен к телевизору. Просто черный экран и никаких признаков жизни.

Я хочу сделать скрипт, который переключает дисплей на внутренний перед выключением. Я попытался с помощью сценария, который имеет C:\Windows\System32\DisplaySwitch.exe /internal и сигнал выключения. Это не сработает, потому что человек, управляющий компьютером, не может нажать на скрипт.

То, что я хотел сделать, это поставить его как скрипт выключения компьютера. Я попробовал это: Сценарий с C:\Windows\System32\DisplaySwitch.exe /internal и параметром /internal, а также просто добавив сценарий с именем C:\Windows\System32\DisplaySwitch.exe и параметром / CC:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown\internal.bat, но все равно не повезло.

Это должно работать правильно? он работает только при завершении сеанса пользователя, поэтому только при настройке пользователем, а не машиной.

Машина на Windows 10.

Спасибо!

1 ответ1

1

С помощью пакетного сценария вы можете выполнить sendkeys , создав динамический сценарий VBS, а затем сделать так, чтобы cscript выполнял его при необходимости. Линия WshShell.SendKeys "{UP}" в приведенном ниже примере пакетного скрипта нажимает стрелку вверх, но заменяет ее на WshShell.SendKeys {"DOWN}" будет вместо этого нажимать стрелку вниз.

Пакетный скрипт

@ECHO ON

DisplaySwitch

:VBSDynamicBuild
SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}"                          >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"

EXIT /B

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .