Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - fisher

Pages: [1]
1
Премного благодарен.

2
Доброго времени суток.

Помогите пожалуйста решить задачу.
Flash игра (Forge Of Empires).
Осуществляю поиск изображений командой SCANPICTURE с коррекцией в 64 цвета.
В целевом изображении закрашен фон, необходимый цвет  указан в bgcolor.
Точность поиска CURRENCY подобрана опытным путем в 60%. Вероятно изображения в игре отличаются друг от друга, в зависимости от фона (прозрачные и полупрозрачные пиксели).
В связи с достаточно большим допуском, в массив попадают значения отличные в один пиксель по X или Y.
Code: [Select]
15:26:17 Найдено X = 308 Y = 785
15:26:20 Найдено X = 307 Y = 785
Как отфильтровать ближайшие значения в массиве? Либо как повысить точность поиска?

3
самому интересно стало, неужели без физического монитора не возможно вкл его?
 оказалось, это очень просто!!!

тестировал на вин7.
 идем сюда - Панель управления\Все элементы панели управления\Экран\Разрешение экрана , или на рабочем столе пкм, и сразу разрешение экрана.
 жмем кнопку "найти" , появляется мониторчик справа от основного.
 тыкаем на него, и ниже, там где "несколько мониторов: экран не выбран" меняем на " попытаться в любом случае подключиться к: vga".
Спасибо за Ваше участие. У меня после нажатия кнопки "найти", ничего не появилось. Вероятно у Вас аппаратно есть еще один видео-выход (интегрированный видеовыход, при использовании внешней карты).

4
Да, видит, но при отключении аппаратного ускорения, тормозит flash жутко. При загрузке отрисовывает картинку 10 минут. Видать Flash довольно прожорлив.
Обновите железо, уменьшите разрешение экрана, отключите фоновые процессы.
Спасибо за совет, но тормозит то как раз потому, что отключается аппаратная производительность компа (не берусь утверждать, думаю видеокарта) и идет программная обработка, соответственно нагружающая процессор и т.п. Если при включенном аппаратном ускорении все летает, плюс еще открыто несколько десятков окон, то при выключенном ускорении Adobe Flash забирает 75-80% процессора.

PS Это мысли вслух, понимаю, что проблемы негра, шерифа не касаются  ::)
Интересует, может есть все таки возможность фонового использования Clickermann и Flash игрухи без отключения аппаратного ускорения?

5
Не использовать хром. Отключить аппаратное ускорение у flash. ПКМ... перезапустить. Всё видит прекрасно.

Да, видит, но при отключении аппаратного ускорения, тормозит flash жутко. При загрузке отрисовывает картинку 10 минут. Видать Flash довольно прожорлив.

6
ставь виртуальную машину, и проблема решится, и ноут свободен  :).
Пробовал, до того как начал экран анализировать. Просто кликал по координатам, но неудобно, координаты не привяжешь, карта игры (FoE) больше экрана, приходится при старте скрипта тыкать по зданиям, указывая местонахождение. Остановил скрипт, что то сделал, карту сместил и заново. 
Вроде и ноут не самый дохлый, хоть и не супер - AMD A8 4x2100, ОЗУ 8, но игруха на VirtualBox с установленной Win XP (использовалась для других целей) жутко тормозит, даже когда я в виртуалке разрешил все ядра и ОЗУ. Вероятно там внешняя видеокарта не работает, вот и тормозит.

7
в общем пробуй расширить твой рабочий стол.
В дровах копался, виртуальные столы попробовал, гуглил. Пока не нашел вариантов.. Ну кроме как отдать ноут под Clickermann  :)

Потому что так не прокатит. За экраном работает только стандартная привязка, а не альтернативная.
Если обычный режим эмуляции, то заскринить за пределами экрана не выйдет и получить GETSCREEN и COLORMODE. Там проверяется на не превышение $_xmax, $_ymax. Обычная же привязка прекрасно гетскринит задвинутые окна.
Вроде у меня при альтернативной привязке скринит, но не отрисовывается. А при стандартной привязке flash не видно, черный экран (и через лупу).

Уменьшать рабочее окно и поместить в край экрана тоже не получается. Картинки слишком мелкие получаются, поиск затруднит. В браузере масштаб приходится уменьшать до 80%, чтобы большинство объектов поместилось в экран. Печально..

PS В этом и есть причина, что не отрисовывается? GETSCREEN не работает и в буфере старый кадр висит, SCREENSHOTEX его сохраняет на диск.

8
Добрый день.

Рано я порадовался...  :( После того как экран задвинут, картинка почему то не обновляется.
Как задвигаю окно - скриншот делается нужного окна, но картинка одна и та же,
как только возвращаю - скриншот начинает обновляться.

В общем аналогично Desktops v2.0 получается.
Windows 8.1. Clickermann v4.12.001

Код (лишнее убрал):
Code: [Select]
#include "alt_winmode.cms"
LOGCLEAR    // очищаем лог
// Получение hwnd окна
HINTPOPUP ("нажмите СКМ для запуска")
WHILE(iskeydown(4)=0) // ждёт  нажатие левой=1 (средней=4) кнопки мыши
   WAITMS(50)
END_CYC

$hwnd1=HGET ($_xmouse, $_ymouse) // выбор окна при нажатии СКМ
print ("hwnd окна:", $hwnd1)

WHILE(iskeydown(4)=1) // ждёт  отпускание левой=1 (средней=4) кнопки мыши
   WAITMS(50)
END_CYC

THREAD(whide, 1)
   IF(ISKEYDOWN(#F9) = 1)
      $hiden = $hiden ^ 1
      IF($hiden = 1)
         WNDPOS(WNDFIND("Mozilla Firefox", 0), $_xmax, 0)
      ELSE
         WNDPOS(WNDFIND("Mozilla Firefox", 0), 0, 0)
      END_IF
      WAITMS(500)
   ELSE
      WAITMS(100)
   END_IF
END_THREAD

CYCLE:  // основной цикл

A_GETSCREEN(0, 0, $_xmax, $_ymax, $hwnd1)
A_COLORMODE(6, 0, 0, $_xmax, $_ymax, $hwnd1)
A_SCREENSHOTEX(0, 0, 0, 0, "Wind_", 0,  $hwnd1)
WAIT(30)

GOTo (CYCLE)

9
Супер. Еще раз спасибо. Мысль была именно в этом направлении, но до раздельных потоков еще не дошла.
Все что делал, заработало!

10
Почему не задвинуть окно за край до максимума?
Хочешь руками, хочешь командой

Спасибо, сейчас попробую. Минус, что процесс не видно, контролировать хочется  :)

11
Ключевое слово "flash"!  Окно флэша это не окно браузера. Привязываться нужно именно к окну флэша, по имени это не сделать, только по координатам.

Прошу прощения, пропустил Ваш ответ. Спасибо. С hwnd разобрался, получаю нажатием в окне при старте скрипта.

Вопрос, как убрать окно к которому привязал Clickermann? Видеокарта Radeon вроде не поддерживает второй монитор (при отсутствии такового). Установил программу менеджер рабочего стола  Dexpot, но она как я понял просто эмулирует столы, отображая программы соответствующие выбранному столу, как следствие, нужное окно оказывается под другими. Нашел другой вариант Desktops v2.0 - добавляет реальный рабочий стол, окно отображается как нужно, Clickermann его видит! Но, есть другая засада: изображение другого рабочего стола не обновляется. Т.е. я написал:
Code: [Select]
A_GETSCREEN(0, 0, 0, 0, $hwnd1)
A_SCREENSHOTEX(0, 0, 0, 0, pref, 0,  $hwnd1)
WAIT(2)

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

Подскажите пожалуйста, каким образом соблюсти условие:

"нельзя чтобы окно было закрыто другим окном"

позволив работать Clickermann и отвоевать возможность пользоваться ПК самому.

12
Добрый день.

Осваиваю Clickermann, делаю скриншот окна Chrome с flash игрой.
При использовании
Code: [Select]
GETSCREEN
SCREENSHOT
получаю черный экран.

Пробую альтернативный вариант из этой темы.
При указании hwnd в явном виде, все работает, 
Code: [Select]
$hwnd1 = 3805494а при указании имени окна - получаю черный экран (правда с какой то белой полосой).
Но если изменить имя, например добавив какой то символ, то Clickermann ругается, т.е. дело не в неправильном имени.
Code: [Select]
$hwnd2 = WNDFIND ("Имя - Google Chrome")
Направьте пожалуйста на путь истинный, как использовать по наименованию окна?
[spoiler=Пример кода]
Code: [Select]
#include "alt_winmode.cms"

$hwnd1 = 3805494
$hwnd2 = WNDFIND ("Имя - Google Chrome")

while($var1 < 2)
   A_GETSCREEN(0, 0, 0, 0, $hwnd1)
   A_SCREENSHOTEX(0, 0, 0, 0, Number, 0,  $hwnd1)
 
   inc($var1)
end_cyc

while($var2 < 2)
   A_GETSCREEN(0, 0, 0, 0, $hwnd2)
   A_SCREENSHOTEX(0, 0, 0, 0, Name, 0,  $hwnd2)
 
   inc($var2)
end_cyc
[/spoiler]

Pages: [1]