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

 
Ответить в эту темуОткрыть новую тему
> Помогите плиз найти решение по созданию скрипта, не выходит привязать к окну
Mala-Anna
сообщение 22.7.2019, 15:59
Сообщение #1


*

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



Всем привет. попробую описать мою проблему.
я для одной игры (не имеет значения какой) прописала скрипты для 4 аккаунтов. каждый из них открывался в новом окне в фейсбуке в хроме . Для работы каждого из них требовалось сделать привязку к синей полоске меню самого фейса. При закрытии и новом открытии окна необходимо было перепривязать. окна практически никогда не закрывались. у меня был прописан скрипт-проводник и 4 закладки для каждого акка и скрипт-проводник их просто запускал. 1,5 года я так и делала и все работало замечательно. Но что то произошло с компом и он перестал тянуть 4 акка открытых все время. я решила прописать один большой общий скрипт который и будет открывать акки по очереди,выполнять все необходимые действия и закрывать их. но именно тут я и столкнулась с проблемой что такой скрипт не хочет привязываться к фейсу, потому что перезапустив страницу привязка слетает.соответственно окно открывается, скрипт бежит,но совершенно ничего не происходит. затем окно закрывается, открывается следующее и все так же.все работает кроме момента привязки к окну, без которой бесполезно все что я прописала, потому что сами действия на акке не производятся.... уже сутки сижу над этим... Возможно есть кто может подсказать решение? заранее спасибо!!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 22.7.2019, 22:38
Сообщение #2


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Mala-Anna @ 22.7.2019, 15:59) *

Всем привет. попробую описать мою проблему.
я для одной игры (не имеет значения какой) прописала скрипты для 4 аккаунтов. каждый из них открывался в новом окне в фейсбуке в хроме . Для работы каждого из них требовалось сделать привязку к синей полоске меню самого фейса. При закрытии и новом открытии окна необходимо было перепривязать. окна практически никогда не закрывались. у меня был прописан скрипт-проводник и 4 закладки для каждого акка и скрипт-проводник их просто запускал. 1,5 года я так и делала и все работало замечательно. Но что то произошло с компом и он перестал тянуть 4 акка открытых все время. я решила прописать один большой общий скрипт который и будет открывать акки по очереди,выполнять все необходимые действия и закрывать их. но именно тут я и столкнулась с проблемой что такой скрипт не хочет привязываться к фейсу, потому что перезапустив страницу привязка слетает.соответственно окно открывается, скрипт бежит,но совершенно ничего не происходит. затем окно закрывается, открывается следующее и все так же.все работает кроме момента привязки к окну, без которой бесполезно все что я прописала, потому что сами действия на акке не производятся.... уже сутки сижу над этим... Возможно есть кто может подсказать решение? заранее спасибо!!

Использовать абсолютные координаты (для поиска цвета или картинок) или делать привязку скриптом
Код

set #okno 0 //счетчик для привязки окна
while #okno < 1  //пока не найдем объект и не сделаем привязку
    set #obekt findimage (0 0 1900 900 (C:\obekt.bmp) %obekt 2 80 abs )  //поиск картинки на странице браузера
    if  #obekt > 0  // если объект найден
        move %obekt[1 1] %obekt[1 2] // наведем мышку на бъект
        wait 200
        set workwindow windowfromcursor  // делаем привязку
        set #okno #okno + 1  //совершили привязку, можно переходить к дальнейшей выполнении скрипта
    end_if
    wait 100
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mala-Anna
сообщение 23.7.2019, 1:50
Сообщение #3


*

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



Цитата(FREEON @ 22.7.2019, 22:38) *

Использовать абсолютные координаты (для поиска цвета или картинок) или делать привязку скриптом
Код

set #okno 0 //счетчик для привязки окна
while #okno < 1  //пока не найдем объект и не сделаем привязку
    set #obekt findimage (0 0 1900 900 (C:\obekt.bmp) %obekt 2 80 abs )  //поиск картинки на странице браузера
    if  #obekt > 0  // если объект найден
        move %obekt[1 1] %obekt[1 2] // наведем мышку на бъект
        wait 200
        set workwindow windowfromcursor  // делаем привязку
        set #okno #okno + 1  //совершили привязку, можно переходить к дальнейшей выполнении скрипта
    end_if
    wait 100
end_while




Вау!!! тут практически все не знакомые мне команды. Но я обязательно разберусь что куда вставлять. надеюсь заработает.спасибо огромное!!!!!!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 23.7.2019, 9:39
Сообщение #4


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Mala-Anna @ 23.7.2019, 1:50) *

Вау!!! тут практически все не знакомые мне команды. Но я обязательно разберусь что куда вставлять. надеюсь заработает.спасибо огромное!!!!!!

Не обязательно делать с картинкой можно делать привязку и по стабильному цвету но обязательно с абсолютными координатами т.к. при смене окон номер меняется.
А так есть wiki-странички по командам с примерами и хорошим объяснением
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mala-Anna
сообщение 26.7.2019, 23:18
Сообщение #5


*

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



Цитата(FREEON @ 23.7.2019, 9:39) *

Не обязательно делать с картинкой можно делать привязку и по стабильному цвету но обязательно с абсолютными координатами т.к. при смене окон номер меняется.
А так есть wiki-странички по командам с примерами и хорошим объяснением



спасибо! со цветом я всегда работаю,но тут другой случай. я долго игралась со скриптом но все равно безрезультатно. сама команда set требует привязку. а ее нет и поэтому скрипт все так же бегает по строчкам,но ничего не происходит((((
с картинкой мне понравился вариант, ее я создала, но на этом я и запнулась...)))))))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 27.7.2019, 6:12
Сообщение #6


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Mala-Anna @ 26.7.2019, 23:18) *

спасибо! со цветом я всегда работаю,но тут другой случай. я долго игралась со скриптом но все равно безрезультатно. сама команда set требует привязку. а ее нет и поэтому скрипт все так же бегает по строчкам,но ничего не происходит((((

Объявление переменной то есть Set не требует привязки к окну, так же как и при использовании абсолютных координат привязка не требуется(не обязательна). Привязка нужна в случае использования относительных координат. Если цвет в какой-то области нового открывшегося окна не меняется(или регулярно появляется) то целесообразнее использовать if или while_not XXX YYY color abs.
Цитата
с картинкой мне понравился вариант, ее я создала, но на этом я и запнулась...)))))))

Хотелось бы взглянуть на ваш конечный результат картинки (вы можете ее загрузить на форум или приложить ссылкой на сторонний ресурс).
Вот краткий мануал по некоторым этапам и правилам Подготовки картинки для Findimage
Что касается трудностей с Findimage ,то там не так все сложно как кажется на первый взгляд.
Пример кода создания поиска картинки с абсолютными координатами:
Код

set #kartinka findimage (0 0 2560 1600 (C:\путь\ИМЯ.bmp) %izobr 2 80 abs )  //картинка которую будем искать
if  #kartinka > 0                    // Условие, если картинка есть на экранне в данный момент времени , то...
    move %izobr[1 1] %izobr[1 2]     // наведем мышку на бъект
    wait 200                         // пауза для перемещения курсора на картинку
    set workwindow windowfromcursor  // делаем привязку
    set #okno #okno + 1              // совершили привязку, можно переходить к дальнейшей выполнении скрипта
else                                 // если картинки нет на экранне в данный момент времени , то...
    msg Не могу найти картинку       // показать сообщение
end_if                               // конец условия

set #kartinka findimage (0 0 2560 1600 (C:\путь\имя.bmp) %izobr 2 80 abs ) где:
set #kartinka объявляем имя картинки которую будем искать.
findimage указывает на то что тип данных искомого объекта картинка
0 0 координаты X левого верхнего угла области где мы будем искать картинку( в текущем примере это самый левый верхний пиксель монитора)
2560 1600 координаты Y правого нижнего угла области где мы будем искать картинку( в текущем примере это противоположный правый нижний пиксель монитора)
C:\путь\ИМЯ.bmp расположение файла и имя картинки. То есть шаблон картинки которую будем искать находится на компьютере на диске C в папке под названием путь и имеет имя файла ИМЯ, .bmp указывает на формат(расширение) файла
%izobr имя массива куда записываются координаты изображения. Координатами изображения считается пиксель левого верхнего угла изображения.
2 указывает на тип поиска в данном случае быстрый поиск
80 точность поиска. Указывается в процентах. Используется для отсева изображений не достаточно схожих с оригиналом.
abs - указывает на то что координаты X и Y являются абсолютными. Если он указан то поиск происходит относительно левого верхнего угла экрана. Без надписи abs поиск происходит относительно левого верхнего угла рабочего окна куда и где привязывали скрипт.

P.S. Координаты X и Y в данном примере использованы с огроооменым запасом, в поиске же можно использовать небольшие области где появляется картинка, но область поиска не должна быть меньше самой картинки(его расширения).
Где брать абсолютные координаты?

Прикрепленное изображение
1. Поле отображения привязки скрипта к окну.
2. Включить\Выключить отображение лога скрипта.
3. Относительные координаты точки(если стоит галка то будет сразу их вставлять в скрипт).
4. Абсолютные координаты точки(если стоит галка то будет сразу их вставлять в скрипт)
5. Включить\Выключить слежение за номером строки скрипта.
6. Цвет пикселя в этой точке (Цифры). Если нажать на оттенок то повторно определяет цвет в данной точке.
7. Поле для отображения(обозначения) и вставки клавиш на специальном языке скрипта.
8. Номер строки скрипта.
9. Поле скрипта.
10. Ползунки прокрутки поля скрипта.
11. Добавить(создать) новый скрипт.
12. Удалить текущий скрипт из пилота.
13. Задержка между строками скрипта(в миллисекундах).
14. Пошаговое выполнение скрипта (только для отладки).
15. Поставить\снять скрипт с паузы(продолжить с текущего места).
16. Запустить\остановить текущий скрипт (выполняет с нулевой строки).
17. Переключение(листать) имен(номера) скриптов.
18. Имя(номер скрипта).
19. Если цифры светятся индикатором красного цвета, то скрипт стоит на паузе.
20. Если цифры светятся индикатором зеленого цвета, то скрипт запущен(работает) в данный момент.
21. Если рядом с цифрами(именем) скрипта в верхнем правом углу отображаться красный квадратик, то означает, что данный скрипт был изменен и изменения не были сохранены(для сохранения нажмите Скрипт>Cохранить(как)).
22. Кнопки запуска\остановки для каждого скрипта (отключено по умолчанию)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mala-Anna
сообщение 27.7.2019, 16:27
Сообщение #7


*

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



[quote name='FREEON' post='433196' date='27.7.2019, 6:12']
Объявление переменной то есть Set не требует привязки к окну, так же как и при использовании абсолютных координат привязка не требуется(не обязательна). Привязка нужна в случае использования относительных координат. Если цвет в какой-то области нового открывшегося окна не меняется(или регулярно появляется) то целесообразнее использовать if или while_not XXX YYY color abs.


это то что я всегда и использовала. правда не абсолютные коры брала

Хотелось бы взглянуть на ваш конечный результат картинки (вы можете ее загрузить на форум или приложить ссылкой на сторонний ресурс).



я чуть попозже попробую еще раз и отпишусь. вот конечный результат картинки


Прикрепленные файлы
Прикрепленный файл  bank.bmp ( 813,01 килобайт ) Кол-во скачиваний: 225
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 27.7.2019, 19:45
Сообщение #8


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



для поиска картинки не нужно искать целое окно достаточно пару пикселей с закрашенным фоном
Прикрепленный файл  bank.bmp ( 250 байт ) Кол-во скачиваний: 285

Но прежде всего стоит сделать проверку может активное окно не меняется. Для проверки скопируйте этот код в новую вкладку и подставьте свои данные в строки которые в комментарии отмечены //***.
1) Привязать свой запускаемый(рабочий, проверяемый) скрипт к рабочему окну.
2) Затем в код который вы скопировали в новую вкладку, нужно указать номер вкладки скрипта где вы запускаете свой скрипт.
3) Указать абсолютные координаты точки где появляется "новое" окно
4) Запускаем скрипт для проверки
5) Запускаем Ваш скрипт
6) ждем пока Ваш скрипт не завершит работу
7) Результат изменений PID окна будет хранится на диске C: под именем PID.txt
Код

set #scr 40           //***номер вкладки скрипта где вы запускаете свой скрипт
set $xy 268, 210 abs  //***абсолютные координаты точки где появляется "новое" окно
//--------------------------------------------
log clear
log mode compact
set linedelay 1         //Установить задержку между строками в 1 мс.
set #a workwindow.#scr  // сохранить в переменной #a хендл рабочего окна скрипта из вашей вкладки
log PID окна где делали привязку: #a
filedelete (C:\PID.txt) //обнулить файл
write (C:\PID.txt PID окна где делали привязку: #a \r\n)
get scripts %a          //получили данные о скриптах и их статусе
for #i 1 size(%a)       //ищем скрипт который мы указали, для определения его статуса
    log #i
    if  #scr = %a [#i 1]
        set #nomerSCR #i
        log наш скрипт: #nomerSCR
        break
    end_if
end_for
set $g %a [#nomerSCR 3]
log $g
set $off runing
while_not $g = $off //ждем пока не запустился проверяемый скрипт
    get scripts %a  //сверка статуса скрипта в текущий момент времени
    set $g %a [#nomerSCR 3]
    wait 100
end_while
while $g = $off     //производить скан PID до тех пор пока он запущен
    get scripts %a  //сверка статуса скрипта в текущий момент времени
    set $g %a [#nomerSCR 3]
    log $g
    get mouse_pos #x #y abs // получить координаты курсора перед смещением
    move $xy                // сместить курсор на наше окно
    wait 10
    set #b WindowFromCursor //записать в переменную хендл окна под курсором
    move #x #y abs          //вернуть курсор обратно в точку до смещения
    if  #a = #b             //если пид изменился запишем это изменение

    else
        log Pid окна изменился на: #b
        write (C:\PID.txt Pid окна изменился на: #b \r\n)
    end_if
    wait 1s
end_while
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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