Код:
Func _WinAPI_LoadKeyboardLayoutEx($sLayoutID = 0x0409, $hWnd = 0)
Local Const $WM_INPUTLANGCHANGEREQUEST = 0x50
Local $aRet = DllCall('user32.dll', 'uint_ptr', 'LoadKeyboardLayoutW', 'wstr', Hex($sLayoutID, 8), 'uint', BitOR(0x00000001, 0x00000100));0x00000101
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_LoadKeyboardLayoutEx
$hWindow = WinGetHandle("MyWindows")
_WinAPI_LoadKeyboardLayoutEx(0x0409, $hWindow)
Sleep(1000)
ControlSend("MyWindows", "", "", '+:')
уже перерыл все что мог те темы на форуме что тут были не помогли, хоть ты тресни лепит точку с запятой вместо двоеточия почему так?
если просто в обычное окно Send ("+:") на английской раскладке всё ок, при инглиш раскладке ставится двоеточие, в моем же случае язык стоит на английском, если нет он переключает на английский но все равно вместо : ставит ; люди помогите уже сил нету