Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Копирование текста с записью в Log
Fors1k
сообщение 6.2.2018, 18:15
Сообщение #1


*

Registred
Сообщений: 7
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 7
Пользователь №: 18.746
Возраст: 26



Что надумал я сам:
Код

1            double_left 796, 469 // координаты строки
2            left 796, 469            // третий клик, т.к. двойной выделит 1 слово, тройной всю строку
3            wait 30                    // зачем-то ждем
4            sendex ^c               // вроде как получаем выделенное в буфер
5            get clipboard $c       // пишем содержимое буфера в переменную $c
6            log получено: $c     // по идее в логе увидим например " Получено: 74% "
7            set workwindow 4065370   // скрипт пошел дальше по своим делам....
8            wait 30                               // .....
9            left 3293, 156                       // ....


Запускаю скрипт. Доходит до строчки 6 и зависает. В лог ничего не выводит, дальше выполнение скрипта не продолжает.

Цель:
В браузере определенном месте (х,у) есть строка с цифрами. Их нужно скопировать, (ну видимо предварительно выделив), получить пилотом, записать в лог, пойти дальше выполнять скрипт.
По форуму лазил, пробовал разное, но либо буфер не получает, либо доходит до момента записи в лог, и останавливается..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 6.2.2018, 18:29
Сообщение #2


*

Registred
Сообщений: 7
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 7
Пользователь №: 18.746
Возраст: 26



Поменял строку 1 и 2 местами. Скрипт дошел до 6 строки, сделал запись в логе, и смог пойти дальше. Что ему позволило это сделать, не пойму (IMG:style_emoticons/default/smile.gif)
Но, в лог я увидел " Получено: left 796, 469 " // Ну это видимо то, что было в буфере ранее, когда я строки местами менял.
То, что надо, так и не копирует(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Varlock
сообщение 7.2.2018, 0:32
Сообщение #3


**

Neophyte
Сообщений: 29
Регистрация: 17.1.2018
Группа: Пользователи
Наличность: 67
Пользователь №: 18.789



от перестановки первой и второй строчки местами у тебя буфер заполнился, ранее вероятно пустой(либо с каким-нить файлом или чем-то объёмным что он в переменную уместить не смог). т.к. у меня и так и так сработало, но в лог записало последнюю мной скопированную строчку.

по поводу остального, вместо посылания контрл-це воспользуйся функцией:
GetSelectedText
по моему должно помочь (IMG:style_emoticons/default/smile.gif)

З.Ы. только что почитал соседнюю тему там попался вариант:
Код
sendex_down ^{C}                // зажать Ctrl+C
wait 200
sendex_up ^{C}                  // отпустить Ctrl+C

Возможно будет удобнее или надежнее т.к. cirus тут главный советчик (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.2.2018, 2:34
Сообщение #4


*********

Grandmaster
Сообщений: 1.909
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 11485
Пользователь №: 16.971
Возраст: 29



Делайте паузы.
Код
sendex ^c   
wait 100  // меньше или больше пробуйте            
get clipboard $c  

sendex ^c не всегда работает. Тогда sendex_down используйте.
Кстати, при нажатии Ctrl+C окно браузера должно быть на переднем плане.
Зависать может если в буфере какой-то код пилота.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 13.2.2018, 17:24
Сообщение #5


*

Registred
Сообщений: 7
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 7
Пользователь №: 18.746
Возраст: 26



Цитата(cirus @ 7.2.2018, 2:34) *

Кстати, при нажатии Ctrl+C окно браузера должно быть на переднем плане.

Спасибо, cirus! это оказалось ключевым моментом. Добавил в начале Showwindow 455689 , и все заработало.
В лог результаты пишет, а как бы сделать еще так, что бы полученное в переменную $c, после "get clipboard $c" пилот умножил на 3.8, и вставил результат обратно. Сам поковырялся, но умножение этой переменной никак не клеится(
Upd.
С умножением справился)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.2.2018, 1:36
Сообщение #6


*********

Grandmaster
Сообщений: 1.909
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 11485
Пользователь №: 16.971
Возраст: 29



Цитата
Добавил в начале Showwindow 455689

Хендл можно не вписывать, без параметров работает для текущего рабочего окна.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 23.2.2018, 7:32
Designed by Nickostyle