示例#1
0
        ///
        /// Получает значение раскладки клавиатуры в формате кода страницы в текущий момент времени.
        ///
        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);
        }
示例#2
0
        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;
        }