Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/50: Рейтинг темы: голосов - 50, средняя оценка - 4.66
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109

Принудительно включить Английскую раскладку

12.11.2012, 10:57. Показов 9760. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Подскажите пожалуйста как принудительно включить английскую раскладку с помощью скрипта vbs через shell ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2012, 10:57
Ответы с готовыми решениями:

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

Замена букв с русской на английскую раскладку
Добрый день. Такой вот у меня вопрос: Кто нибудь знает как написать батник, что бы он текст(Текста очень много) в файле заменял с русской...

Ни одна комбинация клавиш не переключает на английскую раскладку
При установке виндовс вышло сообщение: «Компьютер неожиданно перезагрузился, или возникла непредвиденная ошибка. Невозмозможно продолжить...

6
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.11.2012, 02:36
Установить конкретную раскладку - только через API.

Для VBS - это можно реализовать посредством DynamicWrapper библиотеки.
Принцип описан здесь.
Тогда код будет выглядеть так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim WinAPI, rus, eng, ret
Set WinAPI = CreateObject("DynamicWrapperX")
With WinAPI
  .Register "USER32.DLL", "ActivateKeyboardLayout", "i=ll", "f=s", "r=l"
  .Register "USER32.DLL", "LoadKeyboardLayout", "i=sl", "f=s", "r=l"
  'rus = .LoadKeyboardLayout("00000419", 0)
  eng = .LoadKeyboardLayout "00000409", 0
  ret = .ActivateKeyboardLayout(eng, 0)
End With
Set WinAPI = Nothing
Лично у меня на Win7 не запустилась. Несмотря на успешную регистрацию библиотеки и запуск скрипта через 32-битную версию интерпретатора.

Альтернатива, использовать ту же функцию в среде визуального редактора Visual Basic:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Private Const KLF_ACTIVATE = 1
 
Public Sub SetLanguage(ByVal s As String)
Select Case UCase(Left(s, 1))
  Case "R"
    LoadKeyboardLayout "00000419", KLF_ACTIVATE
  Case "U"
    LoadKeyboardLayout "00000422", KLF_ACTIVATE
  Case "E"
    LoadKeyboardLayout "00000409", KLF_ACTIVATE
End Select
End Sub
 
Private Sub Command1_Click()
'Вызывается соответственно с параметром "R", "U" или "E"
SetLanguage ("U")
End Sub
1
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
13.11.2012, 07:19
DenProx, речь именно о раскладке или же о языке ввода (текущем, "умолчальном")?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
13.11.2012, 07:22  [ТС]
Dmitrii, думаю все таки о языке ввода
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
13.11.2012, 15:10
Цитата Сообщение от DenProx Посмотреть сообщение
... о языке ввода
В качестве разумной альтернативы WinAPI, использование которого уже предложено, могу предложить перейти на AutoHotKey (ему, вроде бы, такая задача должна "быть по плечу").
1
2 / 2 / 0
Регистрация: 05.05.2014
Сообщений: 149
27.10.2014, 08:41
Пробовал эту функцию
Цитата Сообщение от Dragokas Посмотреть сообщение
Код Visual Basic
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Private Const KLF_ACTIVATE = 1
Public Sub SetLanguage(ByVal s As String)
Select Case UCase(Left(s, 1))
* Case "R"
* * LoadKeyboardLayout "00000419", KLF_ACTIVATE
* Case "U"
* * LoadKeyboardLayout "00000422", KLF_ACTIVATE
* Case "E"
* * LoadKeyboardLayout "00000409", KLF_ACTIVATE
End Select
End Sub
Private Sub Command1_Click()
'Вызывается соответственно с параметром "R", "U" или "E"
SetLanguage ("U")
End Sub
в Access. Ругается на Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Вот такое у меня работает в Access.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Const KEYEVENTF_KEYUP = &H2
Public Const HKL_NEXT As Long = 1
Public Const HKL_PREV As Long = 0
 
Public Enum enmKeybordLayout    ' Раскладки клавиатуры
    kbrdEnglish = 67699721
    kbrdRussian = 68748313
End Enum
 
' Пример:          keybd_event vKF1, 0, KEYEVENTF_KEYUP, 0
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Integer, ByVal bScan As Integer, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
 
 
' Пример:  SetLayout kbrdEnglish
Public Sub SetLayout(ByVal myLayout As enmKeybordLayout)    ' Включить выбранную раскладку клавы
    On Error Resume Next
    Dim lngReturn As Long
    Dim lngCodeKeybord As Long
    lngReturn = GetKeyboardLayout(lngCodeKeybord)   'Получить текущую раскладку
    If lngReturn <> CLng(myLayout) Then             'Если раскладки не совпадают, значит, надо переключиться
        Call ActivateKeyboardLayout(HKL_NEXT, 0)
    End If
End Sub
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.10.2014, 11:40
Да. Вы правы. Нужно делать через ActivateKeyboardLayout.
Цитата Сообщение от bsi1 Посмотреть сообщение
Ругается на Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
У меня не ругается.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2014, 11:40
Помогаю со студенческими работами здесь

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

Как сменить раскладку клавиатуры на Английскую по клику по Edit
Как сменить раскладку клавиатуры на Английскую по клику по Edit !!

Как при запуске консольного приложения поменять раскладку на английскую?
Как при запуске консольного приложения поменять раскладку на английскую? В winforms решение знаю, а вот как сделать это в консольном...

Переделать программу, что бы она заменяла английскую а на английскую b
вот есть текст программы который меняет местами предложения. нужно переделать ее так, что бы она заменяла английскую а на английскую b. ...

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта - все дело в register_globals, надо принудительно включить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru