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

 
Ответить в эту темуОткрыть новую тему
> Вопрос, вопрос по скрипту
Rolya
сообщение 24.1.2017, 4:20
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 24.1.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.307
Возраст: 20



Доброго времени суток! Знатоки, подскажите, как разобраться с активным окном.
Есть задача(в браузере): нажимать на кнопку, потом она открывает новое окно, новое окно надо сделать "ворквиндов", что бы скрипт нашел картинку и кликнул по ней.
Сделал в таком виде, но оно не работает из-за неактивного окна на котором долно искать картинку.
Цитата
left 751, 556 abs
wait 4000
set #handle FindWindow(Фото)
set #a FindImage(0 0 1920 1080 (C:\instasub.bmp) %arr #handle)
if #a > 0
left %arr [1 1] %arr [1 2] #handle
end_if
wait 1000
sendex ^{w}
wait 3000
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.1.2017, 14:15
Сообщение #2


**********

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



Картинку нужно искать в активном окне или нет?
Не работает - это не самое корректное описание проблемы. Может окно не находится, может картинка не находится, может клик не туда делается. Ещё полно причин можно найти. Давайте по порядку.
Открываем окно, в котором ищем картинку. Запускаем скрипт:
Код
set #a FindImage(0 0 1920 1080 (C:\instasub.bmp) %arr)     // искать будет в активном окне
if #a > 0
    hint #a     Картинка найдена
else
    hint #a      Картинка не найдена
end_if
end_script

Проверяем находится ли вообще картинка.
Тоже самое с поиском окна:
Код
set #handle FindWindow(Фото)
log #handle
end_script

Проверяем находится ли окно и нужное ли оно по хендлу.
Перед кликом можно добавить move, чтобы было видно куда вообще кликает:
Код
move %arr [1 1] %arr [1 2] #handle
left %arr [1 1] %arr [1 2] #handle


И это - wait 4000, не самый лучший способ дождаться появления окна.
Код
set #handle 0
while #handle = 0                            // ждать пока окно не найдено
    set #handle FindWindow(Фото)
    wait 100
end_while
wait 500  // подождать, чтобы окно успело открыться
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Rolya
сообщение 24.1.2017, 16:55
Сообщение #3


*

Registred
Сообщений: 4
Регистрация: 24.1.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.307
Возраст: 20



Цитата(cirus @ 24.1.2017, 15:15) *

Картинку нужно искать в активном окне или нет?
Не работает - это не самое корректное описание проблемы. Может окно не находится, может картинка не находится, может клик не туда делается. Ещё полно причин можно найти. Давайте по порядку.
Открываем окно, в котором ищем картинку. Запускаем скрипт:
Код
set #a FindImage(0 0 1920 1080 (C:\instasub.bmp) %arr)     // искать будет в активном окне
if #a > 0
    hint #a     Картинка найдена
else
    hint #a      Картинка не найдена
end_if
end_script

Проверяем находится ли вообще картинка.
Тоже самое с поиском окна:
Код
set #handle FindWindow(Фото)
log #handle
end_script

Проверяем находится ли окно и нужное ли оно по хендлу.
Перед кликом можно добавить move, чтобы было видно куда вообще кликает:
Код
move %arr [1 1] %arr [1 2] #handle
left %arr [1 1] %arr [1 2] #handle


И это - wait 4000, не самый лучший способ дождаться появления окна.
Код
set #handle 0
while #handle = 0                            // ждать пока окно не найдено
    set #handle FindWindow(Фото)
    wait 100
end_while
wait 500  // подождать, чтобы окно успело открыться



Проблемма на этапе поиска картинки. 1) открываю окно, принт скрином делаю скриншот и вставляю в пейнт, вырезаю ту кнопку, на которую надо нажать, сохраняю в бмп 24, кидаю в папку, запускаю скрипт, находит, пишет хинт 100, ок, поехали дальше, открываю такое же окно только профиль другого человека, запускаю скрипт, пишет 0, но картинка кнопки не могла же измениться (это же инстаграм)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.1.2017, 17:29
Сообщение #4


**********

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



Скиньте картинку, которую ищите и которая не находится в bmp. Даже не сомневаюсь что при увеличении они будут отличаться.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Rolya
сообщение 24.1.2017, 17:50
Сообщение #5


*

Registred
Сообщений: 4
Регистрация: 24.1.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.307
Возраст: 20



Цитата(cirus @ 24.1.2017, 18:29) *

Скиньте картинку, которую ищите и которая не находится в bmp. Даже не сомневаюсь что при увеличении они будут отличаться.


Прикрепленные файлы
Прикрепленный файл  instasub.bmp ( 5,37 килобайт ) Кол-во скачиваний: 124
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.1.2017, 18:46
Сообщение #6


**********

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



Там буквы немного отличаются по цвету.
Лучше искать рамку, а не слово.
Прикрепленный файл  instasub1.bmp ( 12,69 килобайт ) Кол-во скачиваний: 185

Картинку с рамкой лучше сами сделайте, эта может не находиться, т. к. на разных компах изображения могут отличаться.
Также можно добавить параметры для Findimage, точность поиска и погрешность по цвету.
Код
set findoffsetx 30   // смещение для клика по X, подобрать нужное
set findoffsety 10            // смещение для клика по Y
set #a FindImage(0 0 1920 1080 (C:\instasub.bmp) %arr 2 50 1 10)
// 50 - это точность поиска, 10 - % отклонения в цвете
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Rolya
сообщение 25.1.2017, 15:43
Сообщение #7


*

Registred
Сообщений: 4
Регистрация: 24.1.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.307
Возраст: 20



Цитата(cirus @ 24.1.2017, 19:46) *

Там буквы немного отличаются по цвету.
Лучше искать рамку, а не слово.
Прикрепленный файл  instasub1.bmp ( 12,69 килобайт ) Кол-во скачиваний: 185

Картинку с рамкой лучше сами сделайте, эта может не находиться, т. к. на разных компах изображения могут отличаться.
Также можно добавить параметры для Findimage, точность поиска и погрешность по цвету.
Код
set findoffsetx 30   // смещение для клика по X, подобрать нужное
set findoffsety 10            // смещение для клика по Y
set #a FindImage(0 0 1920 1080 (C:\instasub.bmp) %arr 2 50 1 10)
// 50 - это точность поиска, 10 - % отклонения в цвете


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

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

 

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