Найти - Пользователи
Полная версия: как установить Ru, (либо En) раскладку клавиатуры в windows
Начало » Python для экспертов » как установить Ru, (либо En) раскладку клавиатуры в windows
1
qman
как переключить, установить Ru, (либо En) раскладку клавиатуры.
P.S. нашел решение http://forum.xakep.ru/m_1009422/tm.htm
но там для delphi, как его перенести на python
код1
const
ENGLISH = $409;
RUSSIAN = $419;

....

{активная раскладка в активном окне}
function GetActiveKbdLayoutWnd: LongWord;
var
hWindow,idProcess: THandle;
begin
// получить handle активного окна чужой программы
hWindow := GetForegroundWindow;
// Получить идентификатор чужого процесса
idProcess := GetWindowThreadProcessId(hWindow,nil);
// Получить текущую раскладку в чужой программе
Result:=(GetKeyboardLayout(idProcess) shr $10);
end;

{установить раскладку в активном окне}
procedure SetLayoutActiveWnd(kbLayout : LongWord);
var
Layout: HKL;
hWindow: THandle;
begin
// получить handle активного окна чужой программы
hWindow := GetForegroundWindow;
// Получить ссылку на раскладку
Layout := LoadKeyboardLayout(PChar(IntToStr(kbLayout)), 0);
// посылаем сообщение о смене раскладки
SendMessage(hWindow, WM_INPUTLANGCHANGEREQUEST, 1, Layout);
end;

procedure ChangeLanguage;
begin
if GetActiveKbdLayoutWnd = ENGLISH then // получает язык верно
SetLayoutActiveWnd(RUSSIAN) // но не устанавливает русский
else
SetLayoutActiveWnd(ENGLISH) // зато прекрасно устанавливает английский
end;
вариант 2
LoadKeyboardLayout('00000409', KLF_ACTIVATE); //  для английской
LoadKeyboardLayout('00000419', KLF_ACTIVATE); // для русской
evgenyl
ставиш pywin32 а дальше почти точно также
думаю в ней будут все необходимые тебе функции которые тут есть
был бы у меня хотябы один виндовс показал бы пример :\
qman
evgenyl
ставишь pywin32 а дальше почти точно также
эх, какой еще класс использовать win32api?
P.S. эх завидую что винды нету…
evgenyl
win32ui.GetForegroundWindow
win32process.GetWindowThreadProcessId
win32api.LoadKeyboardLayout
win32api.SendMessage

GetKeyboardLayout пока не нашел
qman
подскажите где взять значение KLF_ACTIVATE, WM_INPUTLANGCHANGEREQUEST?
evgenyl
спроси у гугла, а можно даже и в MSDN глянуть
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB