ComradG
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Чтобы узнать раскладку в активном окне: Код: class MyClass { [DllImport("user32.dll", SetLastError = true)] private static extern int GetWindowThreadProcessId(IntPtr hWnd, IntPtr lpdwProcessId); [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll", SetLastError = true)] private static extern ushort GetKeyboardLayout(int idThread); static void Main() { ushort res = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), IntPtr.Zero)); Console.WriteLine(res.ToString()); } } | Для смены раскладки используется функция LoadKeyboardLayout, представление которой в C# будет вглядеть так: Код: [DllImport("user32.dll", SetLastError = true)] private static extern int LoadKeyboardLayout(string pwszKLID, int Flags); | Подробности на msdn. Я лишь дополню все вышесказанное примером того, как имзенить раскладку: Код: LoadKeyboardLayout("00000409", 1); | Удачи! |