Что нового

правильная работа _WinAPI_SetKeyboardLayout

stormovik

Новичок
Сообщения
58
Репутация
1
Мне нужно чтобы код каждую секунду устанавливал раскладку клавиатуры в активном окне на английскую.
Код:
#include <WinAPISys.au3>
$Eng = 00000409 ; как только не менял, и в кавычках, и без них, и просто 0409.
$hWnd = WinGetHandle("AkelPad")
WinActivate ($hWnd )
While 1
_WinAPI_SetKeyboardLayout($Eng, $hWnd)
Sleep (1000)
WEnd

Если я всё понимаю правильно, то должно выглядеть так. Но раскладка не меняется.
Что я делаю неправильно?
 

Oki

Продвинутый
Сообщения
452
Репутация
62
Код:
#include <WinAPISys.au3>
$Eng = 0x0409
$hWnd = WinGetHandle("[ACTIVE]")
While 1
   _WinAPI_SetKeyboardLayout($hWnd, $Eng)
   Sleep (1000)
WEnd
А если активное окно на момент смены, а не в первые доли секунды после запуска, то даже вот так.
Код:
#include <WinAPISys.au3>
$Eng = 0x0409
While 1
   $hWnd = WinGetHandle("[ACTIVE]")
   _WinAPI_SetKeyboardLayout($hWnd, $Eng)
   Sleep (1000)
WEnd
 
Автор
S

stormovik

Новичок
Сообщения
58
Репутация
1
Второй вариант заработал, спасибо большое
 
Верх