teadrinker
Я нашёл и "не нашёл" (но близко) к чему нужно цеплять эвент, что бы узнать в каком состоянии в данный момент находится клава.
Короче.
Смотрим API там.
https://www.cyberforum.ru/visual-basic/ … 93740.html
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
В API есть Keyboard и Layout .
вбиваем в поиск слова
получаем линк
https://learn.microsoft.com/en-us/windo … -keyboard
В котором есть пояснение насчёт Layout
[Dynamic, Provider("CIMWin32"), UUID("{8502C4B5-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_Keyboard : CIM_Keyboard
{
uint16 Availability;
string Caption;
uint32 ConfigManagerErrorCode;
boolean ConfigManagerUserConfig;
string CreationClassName;
string Description;
string DeviceID;
boolean ErrorCleared;
string ErrorDescription;
datetime InstallDate;
boolean IsLocked;
uint32 LastErrorCode;
string Layout;
string Name;
uint16 NumberOfFunctionKeys;
uint16 Password;
string PNPDeviceID;
uint16 PowerManagementCapabilities[];
boolean PowerManagementSupported;
string Status;
uint16 StatusInfo;
string SystemCreationClassName;
string SystemName;
};
смотрим ниже про Layout
Layout
Data type: string
Access type: Read-only
Free-form string indicating the layout of the keyboard.
This property is inherited from CIM_Keyboard.
Он ссылается на свойства из CIM_Keyboard
Переходим по ссылке
https://learn.microsoft.com/en-us/windo … m-keyboard
И там читаем
напротив
Layout
Data type: string
Access type: Read-only
Free-form string that indicates the format and layout of the keyboard.
Что в переводе означает
Тип данных: строка
Тип доступа: Только для чтения
Строка произвольной формы, указывающая формат и раскладку клавиатуры.
Т.е. цепляем эвент к нему и узнаём клаву раскладку после переключения.
https://wutils.com/wmi/root/cimv2/cim_k … roperties
ПРИМЕР РАСПОЗНАВАНИЯ КЛАВЫ.
https://scriptcoding.ru/win32_keyboard- … laviature/
И всё равно выхватывает только код 409.
В месяге в примере сказано что ЭТО КЛАВА.
Т.е. Получается что ЭТО железка, которая имеет свойства.
А нам нужна прога переключения. Поэтому надо отслеживать прогу.
Ищем дальше.