Что нового

send текст на 2 языках

Crusaderman

Новичок
Сообщения
50
Репутация
0
Добрый. вот столкнулся с такой проблемой. На работе стоит виста английская. когда делаю сенд с екселя в русской раскладке то русский текст норм а английские буквы тупо прописываются русские буквы которым соответствую английские буквы. а при английской раскладкой русские буквы вообще заменяются на "? ? ? ? ? ?" а инглиш буквы норм. курил форум находил темы, но не помогает... вот дома запускаю на ру винде все хавает. а там еще и права ограничены...
как отправить текст содержащий буквы 2 языков в английской виндоус виста?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Crusaderman

Можно попробовать:

Код:
ControlSend()
ControlSetText()


Или можно вообще использовать библиотеку функций для Exel.
 
Автор
C

Crusaderman

Новичок
Сообщения
50
Репутация
0
DarWiM сказал(а):
Crusaderman

Можно попробовать:

Код:
ControlSend()
ControlSetText()


Или можно вообще использовать библиотеку функций для Exel.

Код:
ControlSend()
ControlSetText()

проверил не получаеться. проблема в том что мне не в блокнот нужно) а куда надо я не знаю название полей. а аутоит инфо не показывает название полей. а с пустыми пробелами он не находит куда надо закидывать)
а про библиотеку екселя там что?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Crusaderman

Я сам с ней не работал, но примеры на форуме есть. Не стоит забывать и про справку AutoIt.. :smile:
 
Автор
C

Crusaderman

Новичок
Сообщения
50
Репутация
0
DarWiM сказал(а):
Crusaderman

Я сам с ней не работал, но примеры на форуме есть. Не стоит забывать и про справку AutoIt.. :smile:

я ж сразу написал что форум курил, проблема именно с англоязычной виндой + ограниченыне прова, дома у меня на ру винде и под админом проблем нет. возможно кто-то сталкивался и там тупо какую то библиотеку подключить и все... по этому и спрашиваю....
 
Автор
C

Crusaderman

Новичок
Сообщения
50
Репутация
0
тема решена, вот такой функцией:

Код:
Func InvertLanguage($sString)
    Local $bEnglish[47] = [')', '!', '@', '#', '$', '%', '^', '&', '*', '(', 'A', "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ":", "+", "<", "_", ">", "?", "~", "{", "|", "}", '"']
    Local $sEnglish[47] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", ";", "=", ",", "-", ".", "/", "`", "[", "\", "]", "'"]
    Local $bRussian[47] = [')', '!', '"', '№', ';', '%', ' ', '?', '*', '(', 'Ф', "И", "С", "В", "У", "А", "П", "Р", "Ш", "О", "Л", "Д", "Ь", "Т", "Щ", "З", "Й", "К", "Ы", "Е", "Г", "М", "Ц", "Ч", "Н", "Я", "Ж", "+", "Б", "_", "Ю", ",", "Ё", "Х", "/", "Ъ", "Э"]
    Local $sRussian[47] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'ф', "и", "с", "в", "у", "а", "п", "р", "ш", "о", "л", "д", "ь", "т", "щ", "з", "й", "к", "ы", "е", "г", "м", "ц", "ч", "н", "я", "ж", "=", "б", "-", "ю", ".", "ё", "х", "\", "ъ", "э"]
    Local $sResult, $sCompare
    For $i = 0 To StringLen($sString)
	$sSymbol = Asc(StringMid($sString, $i, 1))
	   For $y = 0 To 46
		   $hWin = WinGetHandle('[ACTIVE]')
            $iLayout = _WinAPI_GetKeyboardLayout($hWin)
			   If Asc($bEnglish[$y]) = $sSymbol Then
			   if $iLayout = "0x04090409" Then
				  sleep(100)
				  Send($bEnglish[$y])
				  ExitLoop
			   Else
				 _WinAPI_SetKeyboardLayout ($hWin , 0x0409)
				  sleep(100)
				  WinActivate($hWin)
				  Send($bEnglish[$y])
				  ExitLoop
				  EndIf
			   EndIf
			   If Asc($sEnglish[$y]) = $sSymbol Then
			   if $iLayout = "0x04090409" Then
				  sleep(100)
				  Send($sEnglish[$y])
				  ExitLoop
			   Else
				  _WinAPI_SetKeyboardLayout ($hWin , 0x0409)
				   sleep(100)
				   WinActivate($hWin)
				  Send($sEnglish[$y])
				  ExitLoop
				  EndIf
			   EndIf
			   If Asc($bRussian[$y]) = $sSymbol Then
			   if $iLayout = "0x04190419" Then
				  sleep(100)
				  Send($bRussian[$y])
			   Else
				  _WinAPI_SetKeyboardLayout ($hWin , 0x0419)
				   sleep(100)
				  WinActivate($hWin)
				  Send($bRussian[$y])
				  EndIf
			   EndIf
			   If Asc($sRussian[$y]) = $sSymbol Then
			   if $iLayout = "0x04190419" Then
				  sleep(100)
				  Send($sRussian[$y])
			   Else
				  _WinAPI_SetKeyboardLayout ($hWin , 0x0419)
				   sleep(100)
				  WinActivate($hWin)
				  Send($sRussian[$y])
				  EndIf
			   EndIf
			Next
	      Next
EndFunc
 
Верх