/// /// Получает значение раскладки клавиатуры в формате кода страницы в текущий момент времени. /// public static int GetKeyboardLayoutIdAtTime() { IntPtr hWnd = GetForegroundWindow(); int WinThreadProcId = GetWindowThreadProcessId(hWnd, out lpdwProcessId); IntPtr KeybLayout = GetKeyboardLayout(WinThreadProcId); installedInputLanguages = System.Windows.Forms.InputLanguage.InstalledInputLanguages; return(installedInputLanguages.Count); for (int i = 0; i < installedInputLanguages.Count; i++) { if (KeybLayout == installedInputLanguages[i].Handle) { currentInputLanguage = installedInputLanguages[i].Culture; } } return(currentInputLanguage.KeyboardLayoutId); }
private static string GetKeyboardLayoutId() { _installedInputLanguages = InputLanguage.InstalledInputLanguages; // Получаем хендл активного окна var hWnd = GetForegroundWindow(); // Получаем номер потока активного окна var winThreadProcId = GetWindowThreadProcessId(hWnd, out _processId); // Получаем раскладку var keybLayout = GetKeyboardLayout(winThreadProcId); // Циклом перебираем все установленные языки для проверки идентификатора for (var i = 0; i < _installedInputLanguages.Count; i++) { if (keybLayout == _installedInputLanguages[i].Handle) { _currentInputLanguage = _installedInputLanguages[i].Culture.ThreeLetterWindowsLanguageName; } } return _currentInputLanguage; }