- Сообщения
- 8,673
- Репутация
- 2,486
Функция позволяет обойти проблему с кодировками при посылании текста используя функцию Send().
Один минус - используется буфер обмена.
Добавлено:
Ну и ещё одна функция на эту же тему...
Позволяет обойти проблему с нажатием г.клавиш при русской раскладке клавиатуры. Например при попытке копирования (^c) посылается буква «c» (англ.) а не сочетание клавиш.
Этот метод не использует переключение раскладки клавиатуры (спорный метод), тут просто конвертируются символы.
Один минус - используется буфер обмена.
Код:
;Автор: CreatoR
;Интерпритация на функцию Send(), только с использованием б.обмена - обход проблемы с кодировками
_SendEx("Текст на русском + On English")
Func _SendEx($sString)
Local $sOld_Clip = ClipGet()
ClipPut($sString)
Sleep(10)
Send("+{INSERT}")
ClipPut($sOld_Clip)
EndFunc
Добавлено:
Сообщение автоматически объединено:
Ну и ещё одна функция на эту же тему...
Позволяет обойти проблему с нажатием г.клавиш при русской раскладке клавиатуры. Например при попытке копирования (^c) посылается буква «c» (англ.) а не сочетание клавиш.
Этот метод не использует переключение раскладки клавиатуры (спорный метод), тут просто конвертируются символы.
Код:
;Автор: CreatoR
;Обход проблемы с отправкой нажатии клавиш в русской раскладке клавиатуры
_SendExEx("^c")
Func _SendExEx($sKeys, $iFlag=0)
If @KBLayout = 0419 Then
Local $sANSI_Chars = "ёйцукенгшщзхъфывапролджэячсмитьбю.?"
Local $sASCII_Chars = "`qwertyuiop[]asdfghjkl;'zxcvbnm,./&"
Local $aSplit_Keys = StringSplit($sKeys, "")
Local $sKey
$sKeys = ""
For $i = 1 To $aSplit_Keys[0]
$sKey = StringMid($sANSI_Chars, StringInStr($sASCII_Chars, $aSplit_Keys[$i]), 1)
If $sKey <> "" Then
$sKeys &= $sKey
Else
$sKeys &= $aSplit_Keys[$i]
EndIf
Next
EndIf
Return Send($sKeys, $iFlag)
EndFunc