Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Послать текст не используя Send()

Ответить
Настройки темы
[решено] Послать текст не используя Send()

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте!
Столкнулся с такой проблемой, на Windows 7 не работает функция Send(), после её вызова сбиваются все клавиши в ОС. Например по нажатию левой клавиши мыши открываются мои документы.
Подскажите пожалуйста, как вставить уже имеющийся текст, причём с русскими символами?

Суть программы в следующем:
Пользователь ставит курсор в поле ввода в браузере, программе, не важно, затем жмёт компбинацию клавишь и в этом месте появляется заранее выбранный текст.

Пробовал копировать в буфер обмена, затем высылать ^V {RCTRL}V не получается.
Send() не катит.
Параметры поля в котороё нужно вставить текст, неизвестны.

Может есть какая UDF или чтонибудь похожее?
Помогите пожалуйста...

-------
Хочу научиться писать драйвера на с++


Отправлено: 18:56, 03-04-2010

 

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Ещё пробовал сделать так:
ControlSend("", "", ControlGetFocus(""), $Text)
но, так он вводит посимвольно весь текст, а не вставляет (впрочем как и send).
А самое плохое, что введённый этой функцией текст зависит от выбранного языка ввода.
Т.е. если у меня включен русский язык, а текст на английском, то функция введёт текст русскими буквами. И аналогично...

-------
Хочу научиться писать драйвера на с++


Отправлено: 15:43, 04-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


morgan1991, Используй
Код: Выделить весь код
ControlSetText()

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 15:50, 04-04-2010 | #3


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Цитата kaster:
morgan1991, Используй »
я уже пробовал:
Код: Выделить весь код
ControlSetText("", "", ControlGetFocus(""), $Text)
вообще ничего не вставляет...

-------
Хочу научиться писать драйвера на с++


Отправлено: 19:32, 04-04-2010 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
Local $ArrPosWin = WinGetCaretPos()
ControlSetText("", "", " [X:" & $ArrPosWin[0] & "; Y:" & $ArrPosWin[1] & "]", $Text)
Так тоже не работает...

-------
Хочу научиться писать драйвера на с++


Отправлено: 20:19, 04-04-2010 | #5


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


morgan1991, почитай в справке синтаксис команды ControlSetText. Сначала тебе нужно найти идентификатор нужного тебе поля и после этого вставлять его в вышеобозначенную функцию.
Код: Выделить весь код
$ctrlID = '[CLASS:someclass; INSTANCE:someinstance]'; найдешь с помощью AutoIt v3 Window Info
ControlSetText("Title", '', $ctrlID, "new text")

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 21:36, 04-04-2010 | #6


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


kaster, дак читал я справку, иначе откуда бы знал про эту функцию?
Целый день уже в справке сижу и в английской и в русской.
Цитата kaster:
найдешь с помощью AutoIt v3 Window Info »
Я же писал что поле ввода, каждый раз меняется, в этом то и проблема...
Цитата morgan1991:
Параметры поля в котороё нужно вставить текст, неизвестны. »
Я думаю тут можно скопировать текст в буфер, затем симулировать комманду вставить в Windows (CTRL+V) и очистить буфер.
Но как симулировать эту кооманду я не знаю.
Send("^V") - не подходит, я уже писал выше, почему...

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:00, 04-04-2010 | #7


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
иначе откуда бы знал про эту функцию? »
так ты приводишь примеры где заголовки окон пустые. откуда я знаю, ты их оставил таковыми от незнания или просто для демонстрации того, что знаешь как пользоваться функциями но для экономии времени опускаешь некоторые вещи.
как правило Send, ControlSend сильно зависимы от поставленной по умолчанию раскладки клавиатуры. Попробуй методы поуниверсальнее -
Copy - Ctrl+Ins
Paste - Shift+Ins

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:06, 04-04-2010 | #8


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


kaster, Send("+{INS}") - работает, спасибо.

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:16, 04-04-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Послать текст не используя Send()

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Net send или Mail Send SH Admin Microsoft Windows NT/2000/2003 3 01-02-2010 21:02
Записать AVi на DVD используя NeroVision Express katerinagraz Видео и аудио: обработка и кодирование 6 13-11-2006 08:59
чем послать NET SEND через интернет Raphael Программное обеспечение Windows 9 15-04-2004 23:06
Можно ли используя радиоинтернет подключится на удаленном ПК Leon71 Хочу все знать 1 25-10-2003 11:40
Как осуществить поиск по Locate используя radiobutton Leon71 Программирование и базы данных 1 07-07-2003 18:04




 
Переход