konokrad666
Новичок
- Сообщения
- 22
- Репутация
- 0
Скрипт должен копировать текст из внешнего приложения, эмулируя нажатие Ctrl+c. Другие способы извлечь текст из приложения не работают.
Функция выглядит так:
Понятно, при любой раскладке кроме английской ControlSend("^c") не срабатывает. По неизвестной мне причине найденные на форуме способы принудительной смены раскладки не работают.
Пробовал:
Так же пробовал заменять
- не работает
В чем может быть проблема?
Заранее спасибо за ответ.
Функция выглядит так:
Код:
ControlFocus ( "Внешняя программа", "", "[CLASS:list; INSTANCE:9]" )
ControlSend ( "Внешняя программа", "", "[CLASS:list; INSTANCE:9]", "^c")
Понятно, при любой раскладке кроме английской ControlSend("^c") не срабатывает. По неизвестной мне причине найденные на форуме способы принудительной смены раскладки не работают.
Пробовал:
Код:
#include <WinAPIex.au3>
$hWnd = WinGetHandle("Внешнее приложение", "")
$hWnd1 = WinGetHandle("Наш скрипт", "")
_WinAPI_SetKeyboardLayout($hWnd, 0x0409)
_WinAPI_SetKeyboardLayout($hWnd1, 0x0409)
Код:
$win_handle = WinGetHandle("", "")
_SetKeyboardLayout("00000409", $win_handle)
Func _SetKeyboardLayout($sLayoutID, $hWnd)
Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 0)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", 0x50, "int", 1, "int", $ret[0])
EndFunc
Так же пробовал заменять
Код:
ControlSend("^c") на ControlSend("^{ASC 099}")
В чем может быть проблема?
Заранее спасибо за ответ.