Ветеран
Сообщения: 812
Благодарности: 353
|
Профиль
|
Отправить PM
| Цитировать
Creat0R,
С учетом Ваших замечаний:
читать дальше »
Код: 
#include <GUIConstantsEx.au3>
ConsoleWrite(_WinAPI_LoadKeyboardLayout_CreatoR(0x0409) & @CR)
#region Main form
$hMain_GUI = GUICreate("Главное окно", 300, 200)
$nStngs_Btn = GUICtrlCreateButton("Настройки", 10, 170, 70, 20)
$nExit_Btn = GUICtrlCreateButton("Выход", 90, 170, 70, 20)
GUISetState(@SW_SHOW, $hMain_GUI)
#endregion Main form
#region Settings form
$hStngs_GUI = GUICreate("Настройки", 400, 200)
$nStngs_Ok_Btn = GUICtrlCreateButton("ОК", 10, 170, 80, 25)
$nStngs_Close_Btn = GUICtrlCreateButton("Закрыть", 310, 170, 80, 25)
#endregion Settings form
Dim $AccelKeys[2][2] = [["{F5}", $nStngs_Btn],["^n", $nStngs_Btn]]
GUISetAccelerators($AccelKeys, $hMain_GUI)
While 1
$aMsg = GUIGetMsg(1)
Switch $aMsg[1]
Case $hMain_GUI
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE, $nExit_Btn
Exit
Case $nStngs_Btn
GUISetState(@SW_SHOW, $hStngs_GUI)
EndSwitch
Case $hStngs_GUI
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE, $nStngs_Close_Btn
GUISetState(@SW_HIDE, $hStngs_GUI)
EndSwitch
EndSwitch
WEnd
Func _WinAPI_LoadKeyboardLayout_CreatoR($sLayoutID, $hWnd = 0)
Local Const $WM_INPUTLANGCHANGEREQUEST = 0x50
Local $aRet = DllCall("user32.dll", "long", "LoadKeyboardLayoutW", "wstr", Hex($sLayoutID, 8), "int", 0)
If Not @error And $aRet[0] Then
If $hWnd = 0 Then
$hWnd = WinGetHandle(AutoItWinGetTitle())
EndIf
DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $hWnd, "int", $WM_INPUTLANGCHANGEREQUEST, "int", 1, "int", $aRet[0])
Return 1
EndIf
Return SetError(1)
EndFunc ;==>_WinAPI_LoadKeyboardLayout_Creat0R
|