Какой рейтинг вас больше интересует?
|
Отслеживаем состояние раскладки клавиатуры2012-10-19 14:25:12 (читать в оригинале)
public Form1() { InitializeComponent(); timer1 = new Timer(); this.timer1.Enabled = true; this.timer1.Interval = 777; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); this.TopMost = true; } private void timer1_Tick(object sender, EventArgs e) { label1.Text = GetKeyboardLayoutId(); } [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern IntPtr GetKeyboardLayout(int WindowsThreadProcessID); [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int GetWindowThreadProcessId(IntPtr handleWindow, out int lpdwProcessID); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetForegroundWindow(); private static InputLanguageCollection _InstalledInputLanguages; // Идентификатор активного потока private static int _ProcessId; // Текущий язык ввода private static string _CurrentInputLanguage; private static string GetKeyboardLayoutId() { _InstalledInputLanguages = InputLanguage.InstalledInputLanguages; // Получаем хендл активного окна IntPtr hWnd = GetForegroundWindow(); // Получаем номер потока активного окна int WinThreadProcId = GetWindowThreadProcessId(hWnd, out _ProcessId); // Получаем раскладку IntPtr KeybLayout = GetKeyboardLayout(WinThreadProcId); // Циклом перебираем все установленные языки для проверки идентификатора for (int i = 0; i < _InstalledInputLanguages.Count; i++) { if (KeybLayout == _InstalledInputLanguages[i].Handle) { _CurrentInputLanguage = _InstalledInputLanguages[i].Culture.ThreeLetterWindowsLanguageName.ToString(); } } return _CurrentInputLanguage; }
|
Категория «Люди»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.