Author Topic: Вопрос новичка.  (Read 3263 times)

0 Members and 1 Guest are viewing this topic.

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Вопрос новичка.
« on: September 14, 2017, 12:50:44 PM »
Здравствуйте!. Подскажите, как после выполнения сценария и потом при его повторе, вернуть окно в координаты начала этого сценария?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос новичка.
« Reply #1 on: September 14, 2017, 02:01:09 PM »
Перемещаем окно с заданным заголовком в координату 0,0 (Верхний левый угол окна)
Code: (clickermann) [Select]
WNDPOS(WNDFIND("Заголовок окна"),0,0)

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #2 on: September 14, 2017, 06:24:53 PM »
как мне получить заголовок нужного окна

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос новичка.
« Reply #3 on: September 14, 2017, 06:48:57 PM »
Прочитать.

Странный вопрос. Нам здесь (в WNDPOS) и не нужен заголовок окна. Нужен HWND. Как ты будешь искать HWND, выбирай сам. Можно получить по координатам или прописать руками.
А можно, как в примере, определить по заголовку.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос новичка.
« Reply #4 on: September 14, 2017, 07:10:04 PM »
как мне получить заголовок нужного окна

Да уж.. Глазами конечно! Но можно и скриптом.
Наведи мышь на верхнюю панель где написан заголовок и нажми Alt+A
Code: (clickermann) [Select]
LOGWRITE (HGETTEXT(HGET($_xmouse,$_ymouse)))
LOGSHOW (1)
HALT
В логе получишь полный заголовок. В функции поиска можно указать не все слова.

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #5 on: September 14, 2017, 07:23:32 PM »
ребят, вы не обижайтесь, то что для вас 2х2 для меня лес дремучий, я ток начинаю учиться работать с этим приложением и мне нифига не понятно..  что вообще считается окном, у меня игра с поляной которая не входит вся в экран и я двигаю её в нужное место, а HWND   в любом месте мне показывает один и тот же, когда открываю менеджер окон там как я понимаю прописаны все окна которые в данный момент у меня открыты, если выбираю из списка "Блокнот" то HWND там получается совсем другой нежели когда навожу курсор на поле игры.

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #6 on: September 14, 2017, 08:33:36 PM »
определяя заголовок скриптом по вашему коду я получил цифры ( часы: минуты: секунды ) время когда нажал запустить  когда ввёл это название в код который  написан выше у мня в панеле задач вместо стандартной кнопки "пуск" стал квадратик на котором написано это время  ;D

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #7 on: September 14, 2017, 08:45:39 PM »
может я изначально не так вопрос задал, попробую по другому: у меня на экране монитора посталена точка для ориентира.. и когда я начинаю писать скрипт, совмещаю эту точку с каким либо объектом в игре и делаю фото что бы потом не забыть, при запуске скрипта иначе он начинает тыкать в указанные координаты монитора не попадая по нужным объектам, но это помогает при запуске скрипта один раз а при повторе надо опять что бы эта точка на экране совместиоась с нужной картинкой ну или что бы картинка встала именно в эту точку.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос новичка.
« Reply #8 on: September 14, 2017, 09:21:42 PM »
Да уж, грамотный вопрос половина ответа. Конечно тебе не окна нужно двигать а корректировать координаты относительно какого то неизменного объекта в игре.

517,113 - Это исходное положение объекта (координата картинки "Ориентир.bmp") определенное при написании сценария. Координаты кликов при написании сценария также как обычно отсчитываются от начала экрана, но в каждую координату нужно добавить переменные смещения $sx и $sy.
Если при следующем запуске сценария ориентир "Ориентир.bmp" переместится в другое место, разница в полученных координатах будет добавлена или отнята от координат всех кликов.

Code: (clickermann) [Select]
// Здесь код отрабатывает 1 раз при запуске
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Ориентир.bmp", -1, 100)
   $sx = $_return1-517
   $sy = $_return2-113
ELSE
   HINTPOPUP("Ориентир не найден", "Ошибка!")
   HALT
END_IF

// Здесь начинается основной замкнутый скрипт
Start:

LCLICK(422+$sx,218+$sy)
WAITMS(50)

LCLICK(506+$sx,403+$sy)
WAITMS(50)


GOTO(Start)
« Last Edit: September 14, 2017, 09:23:16 PM by Oraven »

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #9 on: September 14, 2017, 09:41:42 PM »
не, опять не то, тогда будут скорректированы все координаты, а это уже крах всему сценарию, в игре мне надо завозить ресурсы с центральной локации на другую на карте транспорт с маленькой грузоподъёмностью а завезти надо тонны , в общем нудная операция и по времени ёмкая.. хотел ставить на ночь и когда на работе..  все клики в сценарии со стабильными координатами которые не меняются,  т.к. тыкают в открывающиеся окна положение которых на экране стабильно и только 1 клик , аэропорт, объект на карте, и когда я возвращаюсь на центральную локацию ( конец сценария) происходит сдвижка картинки и каждый раз по разному не на много но значимо, думаю разрабы специально придумали как защиту от ботов. сечас читая темки нашел что можно как то сделать картинку ( к примеру этого аэропорта и что бы прога искала его и кликала именно в картинку.. пока не знаю как сделать картинку разбираюсь..

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #10 on: September 14, 2017, 10:54:57 PM »
 ;D что то намутил
Код: Clickermann
GETSCREEN
IF_PIXEL_IN (793, 487, 1054, 730, 3949389)
MOVE ($_return1, $_return2)
waitms(200 + $S_CORR)
LCLICK ($_return1, $_return2)
но клик почему то идёт в точку 0,0

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #11 on: September 15, 2017, 08:22:13 AM »
окончание добавил, он вообще не стал ни куда кликать, а почему цвет не найден..

Nikolay

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Вопрос новичка.
« Reply #12 on: September 15, 2017, 08:33:44 AM »
GETSCREEN
IF_PIXEL_IN (793, 487, 1054, 730, 3949389)
  MOVE ($_return1, $_return2)
  waitms(200 + $S_CORR)
  LCLICK ($_return1, $_return2)
END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос новичка.
« Reply #13 on: September 15, 2017, 08:37:58 AM »
Не найден, потому что в указанной области его нет.

А почему нет:
1. Неправильно задал область.
2. Неправильно задан цвет
   2.1. Просто ошибка
   2.2. Снял цвет с подсвеченного элемента (кнопка при наведении меняет цвет и т.д.) Нужно снимать с скрина или скриптом.
3. Цвет ищется не вовремя. Поиск проходит до появления объекта - не выдержана пауза.
4. В программе (в основном игре) используется свой программный курсор, который закрывает место поиска или повторного поиска после клика. Нужно отводить курсор перед снимком.
5. Объект анимирован или сглаживание на объекте. Заданный цвет есть, но не всегда. Или в определённые моменты анимации. Использовать COLORMODE и/или подбирать другой цвет для поиска.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос новичка.
« Reply #14 on: September 15, 2017, 08:38:55 AM »
Я вижу утром мы приходим в одно время. ;D