VBS раскладка клавиатуры

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

В виндовсах по Windows 7 включительно любая вновь запущенная программа имеет раскладку по умолчанию. Её можно узнать в реестре. Далее, если она русская, то надо переключать язык только для буржуйской, если она английская - только для русской. Разумеется, уже после запуска программы, когда та получит фокус (раскладка переключается для приложения, окно которого активно). Комбинация для переключения узнаётся из того же реестра, нет необходимости туда ничего писать.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_
1) Видимо, их ещё не пугали скриптами. Дайте мне жертву! :twisted: Мнения начнут быстро меняться.
2) А, теперь ясно. Нужно менять после нажатия, а не до ввода, как я думал.

MVV
Состояние языка ввода отследить реестром нельзя. Какая раскладка является дефолтной - значения не имеет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Настройка языка ввода по умолчанию определяет, какая раскладка будет включена при запуске новой программы. В Win8 это вековое поведение изменено, там (если правильно помню) программа наследует язык ввода от предка.

Раздел HKEY_CURRENT_USER\Keyboard Layout\Preload, значение 1: если оно равно 0x409, язык ввода по умолчанию английский, если оно равно 0x419 - русский.

Из раздела HKEY_CURRENT_USER\Keyboard Layout\Toggle можно узнать комбинацию для переключения, значения подбираются элементарно (сменить комбинацию, применить, посмотреть значение в разделе, и так для каждого варианта, а их всего-то 4).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Есть нюансы.
Может не быть новой программы, переключение может понадобиться в активном окне.
Toggle не годится, когда языков больше двух.

Если у клиентов XP, то можно KB16 RU /E и KB16 EN /E использовать.
На 7-ке какие-то косяки с командой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

А можно принудительно включать нужную раскладку стандартными виндузятными встроенными средствами (ну которая меняет сочетания клавиш ввода с альт+шифт на контрол+шифт и т.д.)?

По-моему там можно назначить сочетание клавиш для ввода нужной раскладки на отдельные сочетания клавиш (не смены раскладки, а именно - включения нужной. ) То есть независимо от текущего языка можно (не переключая его) включить его.

При переключении язык меняется на другой. А тут включаем русский например - если русский в системе активен, он не меняется; если английский - меняется на русский.

Есть такое в Винде, или нет?

Нельзя как-нибудь к этому подобраться средствами VBS ?

ЗЫ Сумбурно как-то объясняю, но вроде донёс мысль :-)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_
Стандартные средства - это назначенные клавиши.
Я предложил kb16. Системы какие у клиентов?

Про назначение на каждый язык в отдельности я уже писал.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Flasher писал(а):_D_V_S_
Системы какие у клиентов?
Win7 (32-64) и некоторые с ХР сидят
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ясно, не годится.
MVV писал(а):Раздел HKEY_CURRENT_USER\Keyboard Layout\Preload, значение 1: если оно равно 0x409, язык ввода по умолчанию английский, если оно равно 0x419 - русский.
Попробовал на XP. Ничего не даёт. Раскладка не меняется.
Последний раз редактировалось Flasher Вт апр 09, 2013 15:12, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Я не предлагаю менять значение ключа. Разумеется, оболочка держит эти значения в памяти до закрытия.
Я предлагаю читать эти значения, чтобы понять, какой язык будет у программы при запуске, и при необходимости переключать его.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Я предлагаю читать эти значения, чтобы понять, какой язык будет у программы при запуске, и при необходимости переключать его.
Главное - это само переключение. Читать значение или не читать - не важно. Даже если делать это каждый раз, сути это не изменит. Сейчас задача переключаться на конкретный язык ввода.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Ну разве это сложно? Посмотрел в реестре, Ctrl+Shift или Alt+Shift, и послал окну, если надо поменять язык.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Не то, чтобы сложно, но муторно. Ctrl+Shift или Alt+Shift не переключает на конкретный язык...
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Если это будет запускаться на однотипных машинах, можно настроить скрипт так, чтобы переключало. Раз уж VBS не может вызвать функцию ActivateKeyboardLayout.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Выше писалось про разные машины.
Кто сказал, что не может? Компонент внешний просто..
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Flasher писал(а):Ctrl+Shift или Alt+Shift не переключает на конкретный язык...
Проверить текущую раскладку.

Если нужна другая, то СендКейз.

И перед переключением (СендКейз) - если в реестр записать конкретное сочетание клавиш (Ctrl+Shift например), чтобы сработало у кого установлено Alt+Shift ?

Правда после СендКейз в скрипте придётся его откатывать обратно...

Так разве нельзя?

ЗЫ Установил аватарку :-)
Ответить