Что нового

Ввод данных в разной кодировке

Radik

Новичок
Сообщения
71
Репутация
1
Надо заполнить документ, где в одни поля надо внести инфу по-русски,
а в некоторые в латинице. Получается абракадабра. Если по-умолчанию
стоит английский, то вместо русских слов - ? ? ? ? ?, если русская раскладка,
то вместо точки - ю, вместо @ - " и т.д.
Как быть?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
Func _WinAPI_LoadKeyboardLayoutEx($sLayoutID = 0x0409, $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_LoadKeyboardLayoutEx

0x0409 - это англицкий,0x0419 - русский
 

vova-n

Новичок
Сообщения
23
Репутация
0
Простите а что делать с этой функцией? Я просто совсем недавно засел за AutoIt. Тоже проблема с кодировкой. У меня вместо точки (.) вводится следж (/).


Добавлено:
Сообщение автоматически объединено:

Решил свою проблему переключением раскладки:
Код:
_WinAPI_SetKeyboardLayout(WinGetHandle("Сайт"),0x0419) ;переключаемся на русский

Требует наличия
Код:
#include <winapisys.au3>
 
Верх