Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Подскажитекак обойти буфер обмена винды.

Страниц (2): [1] 2 »
 

1. Priest - 18 Октября, 2019 - 01:50:15 - перейти к сообщению
У меня сейчас скрипт работает такб после распознавания текста, распознанное копируется в буфер обмена, а потом вставляется сочетанием Ctrl+V в поле ввода на интерне страничку. Очень удивился что буфер обмена винды позволяет сделать это только 21500 раз, потом в него ничего нельзя скопировать и комп начинает глючить. Помогает перезагрузка. На других компах тоже пробовал, результат тот же.
В связи с этим вопрос. Как можно вставить распознанный тект в поле ввода без использования буфера обмена винды?
Заранее СПАСИБО за ответы.
2. ivantu - 18 Октября, 2019 - 02:06:30 - перейти к сообщению
Можно так:

CODE:

// Строка куда сохраняется распознанный текст
string text="распознанный текст";
// Указатель на контрол куда нужно ввести текст
win wind =window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
// Вводим распознанный текст
sendtext(text, wind);
3. Priest - 18 Октября, 2019 - 03:03:34 - перейти к сообщению
Написал такой код:
Scan = text_KIB;
win wind = window ("(для просмотра ссылки Вам необходимо авторизоваться) - Internet Explorer", "IEFrame", -1);
sendtext(Scan, wind);


Scan объявлен в старте как стринг. Вместо ip соответственно ip адрес. Теперь редактор ругается на то что длинна строки в "" не должна превышать 128 символов, нужно разделит на несколько строк. Что я делаю не так?
4. Zireael - 18 Октября, 2019 - 03:13:51 - перейти к сообщению
 Цитата:
"(для просмотра ссылки Вам необходимо авторизоваться) - Internet Explorer"

2 слеша считаются комментарием. Надо так:
CODE:
"http:/"+"/ip.ip.ip.ip/test/Nap.php - Internet Explorer"

Указатель надо давать не на главное окно, а на контрол.
5. Priest - 18 Октября, 2019 - 03:25:05 - перейти к сообщению
Ок, с этим разобрался, с блокнотом все работает нормально, а в поле ввода на интернет страничке не получается. Такое чувство , что отправляет он не в поле ввода а окну браузера. Если мышью предварительно сделать активным поле ввода, то тоже не помогает. Как осуществить отправку непосредственно в поле ввода?
6. ivantu - 18 Октября, 2019 - 03:29:31 - перейти к сообщению
Пробуйте получать указатель на контрол:
(для просмотра ссылки Вам необходимо авторизоваться)
7. Zireael - 18 Октября, 2019 - 03:29:33 - перейти к сообщению
 Цитата:
Такое чувство , что отправляет он не в поле ввода а окну браузера.

Указатель надо давать не на главное окно, а на контрол.
8. ivantu - 18 Октября, 2019 - 03:49:37 - перейти к сообщению
 Priest пишет:
Как осуществить отправку непосредственно в поле ввода?


Есть еще такой вариант, но нужно учитывать раскладку клавиатуры:
PS - Тестировал на строке ввода яндекса для поиска

CODE:

win wind =window ("Chrome Legacy Window", "Chrome_RenderWidgetHostHWND", window ("Яндекс — Яндекс.Браузер", "YandexBrowser_WidgetWin_1", -1));
activate(wind);

string text="распознанный текст";

sendkey(text, 1, wind);
9. Priest - 18 Октября, 2019 - 03:52:48 - перейти к сообщению
Написал в коде то что пишет в строке указатель на контрол, получилось так:
win wind = window ("15", "Internet Explorer_Server", window ("http:/" + "/ip.ip.ip.ip/test/Nakop.php - Internet Explorer", "IEFrame", -1));
sendtext(Scan, wind);

Также не вставляет текст(((
А по ссылке на яндекс диск открывается окно с черным фоном и больше ничего.

Попробовал также и так:
win wind = window ("15", "Internet Explorer_Server", window ("http:/" + "/ip.ip.ip.ip/test/Nak.php - Internet Explorer", "IEFrame", -1));
activate(wind);
sendkey(Scan, 1, wind);

Результат тот же(((
10. Zireael - 18 Октября, 2019 - 04:24:59 - перейти к сообщению
Окно хоть найдено?
CODE:
win wind = window ("15", "Internet Explorer_Server", window ("http:/" + "/ip.ip.ip.ip/test/Nak.php - Internet Explorer", "IEFrame", -1));

if(wind)messagebox("Окно найдено");
else messagebox("Окно не найдено");

Powered by ExBB FM 1.0 Final