Кто-нибудь разбирается в vbs скриптах?

Есть такой вот простой скрипт:

set wShell = createObject("wscript.shell") wShell.sendKeys "^%l" wShell.Run "C:\WINDOWS\system32\shutdown.exe -s -t 0"

Проблема в том, что нажатие клавиши (вторая строка скрипта) срабатывает только если включена англоязычная раскладка. Можно ли с этим что-нибудь сделать? Хз, может как-то принудительно сперва переключать на англоязычную (именно переключать, а не менять, так как может она уже включена). Или какая-нибудь альтернативная строка для русскоязычной раскладки? Что бы две сразу отправляло, какая-нибудь да сработает. В общем, подскажите пожалуйста)

0
8 комментариев
Написать комментарий...
Бухая пятница

Хм...да тут что то есть

Ответить
Развернуть ветку
Railgun

Попробуй добавить после 3 переключение раскладки продублируй вторую строчку

Ответить
Развернуть ветку
Railgun

Но это костыль коэш если сработает

Ответить
Развернуть ветку
FiftyFour
Автор

Кстати да, идея.

Ответить
Развернуть ветку
Loser Antbear

sendKeys не поддерживает юникод.
У тебя комбинация с "шифт+альт+l" - поэтому я б не парился, и назначил на цифру лучше/служебную клавишу. Они везде одинаковые.

Ответить
Развернуть ветку
FiftyFour
Автор

А вот выше идею предложили, как сменить раскладку? Просто wShell.sendKeys "^%" ничего не меняет

Ответить
Развернуть ветку
Loser Antbear

Так ты лучше сразу в вопросе пиши, чего тебе нужно добиться. :)
Если ты хочешь сменить input locale (раскладку) через vbs - то тебе нужно лезть в реестр и менять в нем. Там полотенце кода :D

Но сразу предупреждение - если ты поменяешь раскладку и сэмулируешь "shift+alt+l" - оно все равно пошлет английскую l. :D

Ответить
Развернуть ветку
FiftyFour
Автор

Тогда ну его. В общем, спасибо за разъяснение, просто на цифру изменил)

Ответить
Развернуть ветку
Читать все 8 комментариев
null