![]() |
Послать текст не используя Send()
Здравствуйте!
Столкнулся с такой проблемой, на Windows 7 не работает функция Send(), после её вызова сбиваются все клавиши в ОС. Например по нажатию левой клавиши мыши открываются мои документы. Подскажите пожалуйста, как вставить уже имеющийся текст, причём с русскими символами? Суть программы в следующем: Пользователь ставит курсор в поле ввода в браузере, программе, не важно, затем жмёт компбинацию клавишь и в этом месте появляется заранее выбранный текст. Пробовал копировать в буфер обмена, затем высылать ^V {RCTRL}V не получается. Send() не катит. Параметры поля в котороё нужно вставить текст, неизвестны. Может есть какая UDF или чтонибудь похожее? Помогите пожалуйста... |
Ещё пробовал сделать так:
ControlSend("", "", ControlGetFocus(""), $Text) но, так он вводит посимвольно весь текст, а не вставляет (впрочем как и send). А самое плохое, что введённый этой функцией текст зависит от выбранного языка ввода. Т.е. если у меня включен русский язык, а текст на английском, то функция введёт текст русскими буквами. И аналогично... |
morgan1991, Используй
Код:
ControlSetText() |
Цитата:
Код:
ControlSetText("", "", ControlGetFocus(""), $Text) |
Код:
Local $ArrPosWin = WinGetCaretPos() |
morgan1991, почитай в справке синтаксис команды ControlSetText. Сначала тебе нужно найти идентификатор нужного тебе поля и после этого вставлять его в вышеобозначенную функцию.
Код:
$ctrlID = '[CLASS:someclass; INSTANCE:someinstance]'; найдешь с помощью AutoIt v3 Window Info |
kaster, дак читал я справку, иначе откуда бы знал про эту функцию?
Целый день уже в справке сижу и в английской и в русской. Цитата:
Цитата:
Но как симулировать эту кооманду я не знаю. Send("^V") - не подходит, я уже писал выше, почему... |
Цитата:
как правило Send, ControlSend сильно зависимы от поставленной по умолчанию раскладки клавиатуры. Попробуй методы поуниверсальнее - Copy - Ctrl+Ins Paste - Shift+Ins |
kaster, Send("+{INS}") - работает, спасибо.
|
Время: 13:31. |
Время: 13:31.
© OSzone.net 2001-