VBS раскладка клавиатуры
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5  Next  :| |:
Total Commander -> Программное обеспечение

#16:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Apr 08, 2013 17:54
    —
В виндовсах по Windows 7 включительно любая вновь запущенная программа имеет раскладку по умолчанию. Её можно узнать в реестре. Далее, если она русская, то надо переключать язык только для буржуйской, если она английская - только для русской. Разумеется, уже после запуска программы, когда та получит фокус (раскладка переключается для приложения, окно которого активно). Комбинация для переключения узнаётся из того же реестра, нет необходимости туда ничего писать.

#17:  Author: FlasherLocation: Москва PostPosted: Mon Apr 08, 2013 18:07
    —
_D_V_S_
1) Видимо, их ещё не пугали скриптами. Дайте мне жертву! Twisted Evil Мнения начнут быстро меняться.
2) А, теперь ясно. Нужно менять после нажатия, а не до ввода, как я думал.

MVV
Состояние языка ввода отследить реестром нельзя. Какая раскладка является дефолтной - значения не имеет.

#18:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Apr 08, 2013 18:15
    —
Настройка языка ввода по умолчанию определяет, какая раскладка будет включена при запуске новой программы. В Win8 это вековое поведение изменено, там (если правильно помню) программа наследует язык ввода от предка.

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

Из раздела HKEY_CURRENT_USER\Keyboard Layout\Toggle можно узнать комбинацию для переключения, значения подбираются элементарно (сменить комбинацию, применить, посмотреть значение в разделе, и так для каждого варианта, а их всего-то 4).

#19:  Author: FlasherLocation: Москва PostPosted: Mon Apr 08, 2013 19:27
    —
Есть нюансы.
Может не быть новой программы, переключение может понадобиться в активном окне.
Toggle не годится, когда языков больше двух.

Если у клиентов XP, то можно KB16 RU /E и KB16 EN /E использовать.
На 7-ке какие-то косяки с командой.

#20:  Author: _D_V_S_ PostPosted: Mon Apr 08, 2013 19:42
    —
А можно принудительно включать нужную раскладку стандартными виндузятными встроенными средствами (ну которая меняет сочетания клавиш ввода с альт+шифт на контрол+шифт и т.д.)?

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

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

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

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

ЗЫ Сумбурно как-то объясняю, но вроде донёс мысль Smile

#21:  Author: FlasherLocation: Москва PostPosted: Mon Apr 08, 2013 20:11
    —
_D_V_S_
Стандартные средства - это назначенные клавиши.
Я предложил kb16. Системы какие у клиентов?

Про назначение на каждый язык в отдельности я уже писал.

#22:  Author: _D_V_S_ PostPosted: Tue Apr 09, 2013 09:33
    —
Flasher wrote:
_D_V_S_
Системы какие у клиентов?


Win7 (32-64) и некоторые с ХР сидят

#23:  Author: FlasherLocation: Москва PostPosted: Tue Apr 09, 2013 13:39
    —
Ясно, не годится.

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

Last edited by Flasher on Tue Apr 09, 2013 15:12; edited 1 time in total

#24:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Apr 09, 2013 14:49
    —
Я не предлагаю менять значение ключа. Разумеется, оболочка держит эти значения в памяти до закрытия.
Я предлагаю читать эти значения, чтобы понять, какой язык будет у программы при запуске, и при необходимости переключать его.

#25:  Author: FlasherLocation: Москва PostPosted: Tue Apr 09, 2013 15:16
    —
MVV wrote:
Я предлагаю читать эти значения, чтобы понять, какой язык будет у программы при запуске, и при необходимости переключать его.
Главное - это само переключение. Читать значение или не читать - не важно. Даже если делать это каждый раз, сути это не изменит. Сейчас задача переключаться на конкретный язык ввода.

#26:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Apr 09, 2013 15:32
    —
Ну разве это сложно? Посмотрел в реестре, Ctrl+Shift или Alt+Shift, и послал окну, если надо поменять язык.

#27:  Author: FlasherLocation: Москва PostPosted: Tue Apr 09, 2013 15:44
    —
Не то, чтобы сложно, но муторно. Ctrl+Shift или Alt+Shift не переключает на конкретный язык...

#28:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Apr 09, 2013 16:46
    —
Если это будет запускаться на однотипных машинах, можно настроить скрипт так, чтобы переключало. Раз уж VBS не может вызвать функцию ActivateKeyboardLayout.

#29:  Author: FlasherLocation: Москва PostPosted: Tue Apr 09, 2013 17:17
    —
Выше писалось про разные машины.
Кто сказал, что не может? Компонент внешний просто..

#30:  Author: _D_V_S_ PostPosted: Tue Apr 09, 2013 18:03
    —
Flasher wrote:
Ctrl+Shift или Alt+Shift не переключает на конкретный язык...

Проверить текущую раскладку.

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

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

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

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

ЗЫ Установил аватарку Smile



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5  Next  :| |:
Page 2 of 5

Powered by phpBB © 2001, 2005 phpBB Group