Автор Тема: IF_PICTURE_IN - Для новичков  (Прочитано 46527 раз)

0 Пользователей и 1 Гость просматривают эту тему.

melkichelik

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #75 : Январь 15, 2021, 09:27:44 pm »
ну конечно-же можно, устанавливайте программно размер окна; попиксельно идентичный тому, на котором сканировались ваши картинки.
А этот тут при чем? На обеих системах одно и то же разрешение, окно браузере в данном случае раскрывается на весь экран, браузер один и тот же, так, что размер окна тут не при чем, ну и самое главное, в браузере картинки не меняют свой размер (которые мы ищем), в виртуалке же как я понимаю там драйвер по умолчанию возможно этому мешает, я хз как там обстоят дела.
« Последнее редактирование: Январь 15, 2021, 09:31:35 pm от melkichelik »

kiril

  • Освоившийся
  • **
  • Сообщений: 42
    • Просмотр профиля
Re: это явно не Для новичков
« Ответ #76 : Январь 18, 2021, 06:33:12 pm »
А этот тут при чем? На обеих системах одно и то же разрешение, окно браузере в данном случае раскрывается на весь экран, браузер один и тот же, так, что размер окна тут не при чем, ну и самое главное, в браузере картинки не меняют свой размер (которые мы ищем), в виртуалке же как я понимаю там драйвер по умолчанию возможно этому мешает, я хз как там обстоят дела.
А этот тут при чем?  Вы полностью изменили условия после получения ответа, если многократно проверенное решение лично вас по какой-то причине не устраивает, то не нужно городить костыли, чтоб представить его бесполезным, ищите самостоятельное решение на основе своих предположений и понимания.
Для статистики замечу, что у меня проблем с переносом картинок с основной на виртуальную операционную систему, и на чужие компы, давно уже не возникает, вплоть до генерации самим скриптом, любых нужных ему  для работы картинок, в процессе работы на другом компьютере .

Алексей87

  • Освоившийся
  • **
  • Сообщений: 32
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #77 : Февраль 18, 2021, 12:59:57 am »
Всем привет.
Подскажите пожалуйста, поразбирался с данным функционалом.
На данный момент у меня лучше получается разпознавать необходимые объекты используя
if_pixel_in нежели IF_PICTURE_IN
А теперь вопрос:
в каталоге C:\......\Clickermann\projects\if_picture_in имеется встроенный скрипт проверки main.cms и у меня даже он не отрабатывает. Всегда - картинка не найдена.
1. Естественно окно редактора при этом свернуто;
2. Пробовал менять параметры самого IF_PICTURE_IN;
3. Запускаю ПО от администратора;
4. Привязок к окнам не делал;
Ничего не помогло, кто-то может дать пояснения.

Алексей87

  • Освоившийся
  • **
  • Сообщений: 32
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #78 : Февраль 18, 2021, 08:26:13 am »
.......... Вот этот снимок он и делает с помощью команды GETSCREEN. Если эта команада без координат, то Clickermann помещает в свой графический буфер скриншот ВСЕГО вашего экрана.................

Не подтверждаю. На моем устройстве (ноутбук Dell) данная команда помещает в свой графический буфер скриншот НЕ всего экрана, а примерно 2\3 начиная с нулевых координат.
Можете пояснить данную ситуацию и дать рекомендации?
Очень странное поведение. На ноутбуке Win 10 Pro захватывается 2\3 как писал выше.
На виртуальной машине на базе Win 10 20H2 - все корректно. Захват полный.
Что заметил на ноутбуке: несмотря на разрешение в full hd (1920\1080) координаты же стола при наведении курсором значительно меньше максимальные, примерно в 2 раза. С чем связано - не ясно.
« Последнее редактирование: Февраль 18, 2021, 12:19:26 pm от Алексей87 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3817
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #79 : Февраль 18, 2021, 03:13:51 pm »
Не подтверждаю. На моем устройстве (ноутбук Dell) данная команда помещает в свой графический буфер скриншот НЕ всего экрана, а примерно 2\3 начиная с нулевых координат.
Можете пояснить данную ситуацию и дать рекомендации?
Очень странное поведение. На ноутбуке Win 10 Pro захватывается 2\3 как писал выше.

Примерно 5% (шутка, конечно меньше) всех вопросов на форуме и в группе ВК аналогичных твоему и везде дан ответ:
Масштаб рабочего стола должен быть 100%!

Вот прям в этом же разделе форума в шапке приклеена тема
Разрешение экрана. Смещение. Видит не весь экран.


Алексей87

  • Освоившийся
  • **
  • Сообщений: 32
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #80 : Февраль 18, 2021, 04:10:55 pm »
Не успел ознакомиться со всеми ветками! Прошу прощения, два дня работаю с ПО.
Теперь все стало ясно.
Такое ощущение что нужно начинать использование ПО с заголовка: возможные ограничения.
И список предостережений что может пойти не так.
Спасибо большое!

zalmanoff

  • Зашел в гости
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #81 : Март 26, 2021, 02:07:16 am »
доброй ночи всем)
смотрю живой форум.
Проблема такая:
Есть область экрана на которой ищется фрагмент, находится...
Проблема в том что таких фрагментов может быть один, а может быть 10 или ни одного.
Если фрагментов нет, все понятно так же как если один.
А вот если их несколько, то находится первый начиная от верхнего левого угла и на этом дальше выход из поиска.
Вопрос как собрать координаты всех фрагментов в заданной области?
Пока только придумалось тупо обрезать область поиска по у и повторить поиск на уменьшенной части и так резать после каждого нахождения до тех пор пока область не станет меньше фрагмента.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3817
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #82 : Март 26, 2021, 10:10:41 pm »
SCANPICTURE


zalmanoff

  • Зашел в гости
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #83 : Март 27, 2021, 11:08:47 pm »
SCANPICTURE
СПАСИБО!!!! и простите.

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #84 : Сентябрь 11, 2021, 10:02:07 pm »
где-то есть полный список всех команд?
Очевидно, что в хелпе не все команды описаны.

kiril

  • Освоившийся
  • **
  • Сообщений: 42
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #85 : Сентябрь 12, 2021, 11:58:11 am »
можете доказать столь очевидное вам утверждение?
 может вы просто невнимательно смотрите в справку, а так-же меню команд и шаблонов?

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #86 : Сентябрь 12, 2021, 06:38:13 pm »
Видимо, вы правы.
не могу найти
Есть ли в языке механизм, чтобы задавать свои процедуры и функции?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3817
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #87 : Сентябрь 13, 2021, 08:24:08 am »
Свои функции задавать нельзя. Есть только механизм подпрограмм.
Да, не так удобно как с функциями и больше кода и не очень красивого кода может получаться, но использовать можно.
Кликер - использует специально упрощённый язык для новичков, поэтому автор не хотел вводить ещё и области видимости переменных, хоть позже частично это и пришлось сделать в двух случаях.


Aleksey999

  • Зашел в гости
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #88 : Январь 12, 2022, 02:14:05 pm »
Здравствуйте господа, почитал ответы "гуру" в этой теме и понял что мне нужна помощь.
Скрипт ниже рабочий, действия простые но судя по всему сам скрип не самый оптимальный. Поделитесь опытом, как можно проще и эффективнее использовать функционал кликера?
Заранее благодарю за вашу помощь.

GETSCREEN
COLORMODE(6)
SCREENSHOTFIX(26,597, 367,1090, "herb.bmp")
IF_PIXEL_IN(26,597, 367,1090, 8355647)
   
   KEYDOWN(#ctrl)
   WAITMS(100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
   KEYUP(#ctrl)
   WAITMS(200)
   
END_IF

GETSCREEN
COLORMODE(6)
SCREENSHOTFIX(26,597, 367,1090, "herb1.bmp")
IF_PIXEL_IN(26,597, 367,1090, 8355839)
   KEYDOWN(#ctrl)
   WAITMS(100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
   KEYUP(#ctrl)
   WAITMS(200)
   
END_IF

GETSCREEN
COLORMODE(6)
SCREENSHOTFIX(26,597, 367,1090, "herb2.bmp")
IF_PIXEL_IN(26,597, 367,1090, 8388607)
   KEYDOWN(#ctrl)
   WAITMS(100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
   KEYUP(#ctrl)
   WAITMS(200)
   
END_IF

GETSCREEN
   IF_PIXEL_IN(61,382, 343,413, 269907)
   LCLICK($_return1, $_return2)
   WAITMS(500)
END_IF


HALT



dramster

  • Герой форума
  • *****
  • Сообщений: 1131
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #89 : Январь 12, 2022, 09:21:58 pm »
Если это весь скрипт, то пусть себе и работает. Единственное что можно оптимизировать, для ускорения работы, это оставить гетскрин и колормод вверху кода, остальные убрать, и добавить области снимка и коррекции.
Код: Clickermann
  1. GETSCREEN(26,597,367,1090)
  2. COLORMODE(6, 26,597,367,1090)
  3. SCREENSHOTFIX(26,597, 367,1090, "herb.bmp")
  4. IF_PIXEL_IN(26,597, 367,1090, 8355647)  
  5.   KEYDOWN(#ctrl)
  6.   WAITMS(100)
  7.   LCLICK($_return1, $_return2)
  8.   WAITMS(100)
  9.   KEYUP(#ctrl)
  10.   WAITMS(200)  
  11. END_IF
  12.  
  13. SCREENSHOTFIX(26,597, 367,1090, "herb1.bmp")
  14. IF_PIXEL_IN(26,597, 367,1090, 8355839)
  15.   KEYDOWN(#ctrl)
  16.   WAITMS(100)
  17.   LCLICK($_return1, $_return2)
  18.   WAITMS(100)
  19.   KEYUP(#ctrl)
  20.   WAITMS(200)  
  21. END_IF
  22.  
  23. SCREENSHOTFIX(26,597, 367,1090, "herb2.bmp")
  24. IF_PIXEL_IN(26,597, 367,1090, 8388607)
  25.   KEYDOWN(#ctrl)
  26.   WAITMS(100)
  27.   LCLICK($_return1, $_return2)
  28.   WAITMS(100)
  29.   KEYUP(#ctrl)
  30.   WAITMS(200)  
  31. END_IF
  32.  
  33. GETSCREEN(61,382,343,413)
  34. IF_PIXEL_IN(61,382, 343,413, 269907)
  35.   LCLICK($_return1, $_return2)
  36.   WAITMS(500)
  37. END_IF
  38.  
  39.  
  40. HALT

Если хочется сократить код, то можно добавить подпрограммы, справка - язык сценариев - основные конструкции - sub ... end_sub