1 (изменено: Доктор ТуамОсес, 2014-01-11 13:35:05)

Тема: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Давайте сравним в этой теме различные программные системы для "Windows Automation", т.е. средства для автоматизации различных действий в Windows.

Что есть в одних прогах, то что нет в других.
Вот мне например до дрожи в коленках понравился "авто_скрипт_врайтер", встроенный в Macro ToolsWorks. Буквально за пару минут можно написать сложнейший скрипт, который "в рукопашную" я писал бы целый день.

А Sikuli - это единственная прога для "Windows Automation", которая может сама находить нужную кнопку или другой элемент GUI по её "фотографии". Т.е. чтобы переместить курсор мыши на кнопку разработчику скрипта не нужно вычислять её координаты (которые к тому что постоянно меняются - т.к. как окно может находится в разных частях экрана), достаточно подсунуть сикули "фотографию" (скриншот) этой кнопки. Ничего подобного не умеют ни Macro ToolsWorks ни AutoHotKey

2

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Т.е. давайте в этой теме описывать, что в том или ином программном средстве для "Windows Automation" сделано очень удачно, а что не очень. А что вообще отсутствует.

3

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

достаточно подсунуть сикули "фотографию" (скриншот) этой кнопки. Ничего подобного не умеют ни Macro ToolsWorks ни AutoHotKey

Ну, в АНК ImageSearch же есть. При желании можно что-то подобное реализовать.

4

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Т.е. давайте в этой теме описывать, что в том или ином программном средстве для "Windows Automation" сделано очень удачно,

Для автоматизации очень удачно сделаны: WSH, KiXtart, AutoIt, AutoHotKey, PoSH. Средства, не являющиеся клиентами Automation, лишают себя подавляющего числа возможностей автоматизации.

5 (изменено: Доктор ТуамОсес, 2014-01-11 16:47:50)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

YMP пишет:

достаточно подсунуть сикули "фотографию" (скриншот) этой кнопки. Ничего подобного не умеют ни Macro ToolsWorks ни AutoHotKey

Ну, в АНК ImageSearch же есть. При желании можно что-то подобное реализовать.

Признаться первый раз об этом слышу Хотя AHK пользуюсь уже наверное где-то лет 6. Если не больше.

И что? В AHK так же как в Sikuli можно сделать скрипт, который сам будет находить (причём очень шустро (за десятые/сотые доли секунды) - т.е. в реал-тайме) нужные графические элементы на экране и позиционировать туда курсор мыши? Что даже можно на AHK написать бота, который будет сам играть в онлайн-игру стрелялку? Т.е. сам будет распознавать на экране изображения врагов, наводить  на них курсор мыши и стрелять по ним? Если это всё так, то где можно об этом поподробней почитать?

6

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

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

Расскажите, что конкретно вам удавалось автоматизировать, какие операции и задачи, и с помощью какой проги

7

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

alexii пишет:

PoSH

Вот что я прочитал на ХАБРе про PoSH:

Судя по продвижению PowerShell Microsoft осознала, что с WSH у неё не получилось и решила попробовать ещё раз

8

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Такое ощущение, что Вы каждый раз накидываете пару лет к опыту использования AutoHotkey. Русский перевод ImageSearch уже выложен на форуме в соответствующей теме.

9

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu
РаскАжете о своём опыте? Что делали и на чём?

10

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Русский перевод ImageSearch уже выложен на форуме в соответствующей теме.

Процитирую опять хабр:

На форумах повсеместно не рекомендуют использование ImageSearch из-за долгого времени работы

11

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Делал поиск изображений на экране. В том числе "оцифровывал" числа, слова с учётом пробелов. Быстродействие ImageSearch хорошее, но напрягает процессор при частом использовании. Если процессор уже загружен, быстродействие ограничивается.

12

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Доктор ТуамОсес, что не получилось?

13

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Я лично ImageSearch не использовал, не было нужды, так что ничего более конкретного не могу сказать.

14

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Делал поиск изображений на экране. В том числе "оцифровывал" числа, слова с учётом пробелов. Быстродействие ImageSearch хорошее, но напрягает процессор при частом использовании. Если процессор уже загружен, быстродействие ограничивается.

А с Sikuli не сравнивали по быстродействию поиска картинки и OCR?

15 (изменено: ypppu, 2014-01-11 18:05:33)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Sikuli не пользовался. А какая Вам разница, что говорят другие люди? Всё это дело субъективно. Смоделируйте ситуацию, когда искомое изображение быстро появляется-исчезает (например, 100 циклов) с заданной частотой. Если ImageSearch будет отрабатывать (успеет найти 100% изображений), то повысьте частоту. Так постепенно найдёте потолок, на котором начнутся пропуски. Быстродействие сильно зависит от размеров изображения и размеров области поиска.

Добавлено: AutoHotkey: проект перевода, ветка #2

16

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Русский перевод ImageSearch уже выложен на форуме в соответствующей теме.

Чёта я не нашёл эту тему. Может поделитесь ссыклой?

17

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

А какая Вам разница, что говорят другие люди?

Просто собираю инфу по разным скриптописалкам. Выбираю инструментарий автоматизации для одного серьёзного проекта

18

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Смоделируйте ситуацию, когда искомое изображение быстро появляется-исчезает (например, 100 циклов) с заданной частотой. Если ImageSearch будет отрабатывать (успеет найти 100% изображений), то повысьте частоту. Так постепенно найдёте потолок, на котором начнутся пропуски.

Я придумал другой тест.
ЕСТЬ ИГРА
я для тестирования скриптописалок хочу написать бота, который будет стрелять по лосям.
Хочу посмотреть будет успевать скрипт распознать и убить лося пока он бежит

19

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Для тестирования проще сделать окно GUI, в котором одна и та же картинка (или ещё проще - элемент управления) будет периодически изменять координаты. Рабочий скрипт ищет картинку, если находит - дописывает в переменную-лог координаты. Если не находит, добавляет запись об ошибке. В конце смотрим есть ли ошибки или пропуски.

20

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Выбираю инструментарий автоматизации для одного серьёзного проекта

Я придумал другой тест.

ЕСТЬ ИГРА

я для тестирования скриптописалок хочу написать бота, который будет стрелять по лосям.

Хочу посмотреть будет успевать скрипт распознать и убить лося пока он бежит

Ну, вот с этого и надо было начинать. Никакого отношения к «автоматизации Windows» сие не имеет.

21 (изменено: Доктор ТуамОсес, 2014-01-11 21:54:41)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

alexii пишет:

Ну, вот с этого и надо было начинать. Никакого отношения к «автоматизации Windows» сие не имеет.

В смысле "не имеет"? Как это "не имеет"? А что ж тогда имеет? Поясните свою мысль.
Разве то что, у меня скрипт будет в нужные моменты АВТОМАТИЧЕСКИ двигать указатель мыши в нужные места и АВТОМАТИЧЕСКИ кликать левой кнопкой мыши - это не автоматизация? Ведь он же получается всё это за юзверя (то бишь меня) всё будет делать избавляя меня от необходимости ВРУЧНУЮ двигать мышкой и кликать.

А потом, это я описал просто как хочу потестить возможности скриптописалок. А задача у меня на самом деле другая. Но о ней я пока умолчу

22

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Для тестирования проще сделать окно GUI, в котором одна и та же картинка (или ещё проще - элемент управления) будет периодически изменять координаты. Рабочий скрипт ищет картинку, если находит - дописывает в переменную-лог координаты. Если не находит, добавляет запись об ошибке. В конце смотрим есть ли ошибки или пропуски.

Ну да. С этого наверное как с более простого можно начать тестирование динамических свойств скрипта. Но настоящая проверка - это конечно же если скрипт сможет играть в динамическую FLASH-игру. Какой скрипт наберёт больше очков - тот и лучше

23

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

А что, вы, господа, ничего не рассказываете о достоинствах и недостатках инструментария, который вы юсаете для написания скриптов?

24

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Автоскриптописатели AutoHotkey, как я думаю, мало кто использует. Это больше для новичков для ознакомления со скриптовым языком. Большим подспорьем может быть Smart GUI creator, чтобы быстрее рисовать окна. Для больших скриптов, говорят, полезна подсветка синтаксиса (навскидку, SciTE4AutoHotkey). Для анализа окон и элементов управления AutoIt3 Window Spy. Кто шарит в оконных сообщениях - Winspector Spy.

25

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

alexii пишет:

Средства, не являющиеся клиентами Automation, лишают себя подавляющего числа возможностей автоматизации.

Не имел дела ни с Macro ToolsWorks, ни с Sikuli.
Ради интереса поискал сведенья о них. Весьма вероятно, что они не совсем лишают себя таких возможностей.

Не знаю, относится ли это к бесплатной версии, но Macro ToolsWorks позволяет (Advanced Scripting) включать в макросы скрипты (непосредственно или из внешнего файла) на VBA-подобном языке «with full featured editor, debugger and dialog box designer», а также на VBScript и JScript:

<#> This is very simple JavaScript example
<cmds>

<script_js>

function Hello() 
{
    var WSHShell = WScript.CreateObject("WScript.Shell");
    WSHShell.Popup("Hello, this is JavaScript");
}

Hello()

</script_js>

Sikuli:

В качестве скриптового языка в Sikuli используется Jython…

— т.е. вопрос упирается в возможности Java.

26 (изменено: wisgest, 2019-01-20 08:31:24)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

wisgest пишет:

Не знаю, относится ли это к бесплатной версии…

Нашёл: в бесплатной версии «VBA-compatible macro language» не поддерживается, также в ней отсутствуют «150+ additional commands (variables, time/date manipulation, macro flow commands if/then/else, cycles, procedures, run other macros, run context menus commands, find image on screen, user control over error handling, user defined forms, send e-mails, FTP, manipulate windows, manipulate clipboard, read/write from/to Windows registry, enumerate and kill processes, and more...)» — вполне возможно, в их число попадают и script_js/script_vbs.

--------------------


Буквально пару дней назад наткнулся на среду разработки макросов SCAR Divi, сам пока не разбирался, но возможно кого-нибудь заинтересует. Как сказано на Softpedia.com, «It uses color, image, pattern and text recognition algorithms to gather data about the current state of your machine and act upon it accordingly as programmed». В качестве языка сценариев используется Pascal Script от RemObjects, но почему-то ни CreateOleObject(), ни GetActiveOleObject() среди поддерживаемых функций нет.

SCAR Divi Online Manual
Общий вид (2019-01-20: новое расположение — на saveimg.ru)

27

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Не имел дела ни с Macro ToolsWorks, ни с Sikuli.

Первый очень похож на xStarter (Программа для автоматизации процессов на компьютере), а суть второго, как я понимаю, изложена фактически чуть выше в этой же теме.

28

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

JScript, VBScript - недостатки в том, что фактически приходится пользоваться написанными под рукой функциями, иначе процесс разработки с нуля сильно увеличивается во времени. Да и реализации языков подходят только для  администрирования. Функции работы с окнами придется реализовывать во внешних компонентах.
AutoIt - фреймворк функций вполне большой по количеству и возможностям, однако рано или поздно возникает придирка к небольшой производительности и отсуствию многопоточности.

29

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

wisgest пишет:
wisgest пишет:

Не знаю, относится ли это к бесплатной версии…

Нашёл: в бесплатной версии «VBA-compatible macro language» не поддерживается, также в ней отсутствуют «150+ additional commands (variables, time/date manipulation, macro flow commands if/then/else, cycles, procedures, run other macros, run context menus commands, find image on screen, user control over error handling, user defined forms, send e-mails, FTP, manipulate windows, manipulate clipboard, read/write from/to Windows registry, enumerate and kill processes, and more...)» — вполне возможно, в их число попадают и script_js/script_vbs.

Да уж. Грустно. Но в инете полно "вылеченных от жадности" версий. Причём Pro.

wisgest пишет:

Буквально пару дней назад наткнулся на среду разработки макросов SCAR Divi, сам пока не разбирался, но возможно кого-нибудь заинтересует. Как сказано на Softpedia.com, «It uses color, image, pattern and text recognition algorithms to gather data about the current state of your machine and act upon it accordingly as programmed». В качестве языка сценариев используется Pascal Script от RemObjects, но почему-то ни CreateOleObject(), ни GetActiveOleObject() среди поддерживаемых функций нет.

SCAR Divi Online Manual
Общий вид

Да. Интересно. Спасибо за инфу.
Похоже что у программистов, создающих разного рода инструментарий для разработки скриптов начинается "color, image, pattern and text recognition"-ИСТЕРИЯ.
После появления Sikuli все осознали насколько это многообещающая возможность - распознавание графической инфы прямо с экрана. И такое ощущение, что все вдарились встраивать в свои скриптописалки эту возможность, чтобы не потерять пользователей

30

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

JSman пишет:

JScript, VBScript - недостатки в том, что фактически приходится пользоваться написанными под рукой функциями, иначе процесс разработки с нуля сильно увеличивается во времени.

Зато с помощью явы достигается кроссплатформенность.

JSman пишет:

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

Ну да. Без параллельности сейчас никуда

31

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Доктор ТуамОсес пишет:

Зато с помощью явы достигается кроссплатформенность.

Причем тут ява? Java != JavaScript и тем более JScript for WSH.

32

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

JSman пишет:

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

Те же проблемы в AHK. Частично решаются разделением задач между несколькими процессами, запускаемыми параллельно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

33

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

ypppu пишет:

Смоделируйте ситуацию, когда искомое изображение быстро появляется-исчезает (например, 100 циклов) с заданной частотой. Если ImageSearch будет отрабатывать (успеет найти 100% изображений), то повысьте частоту. Так постепенно найдёте потолок, на котором начнутся пропуски. Быстродействие сильно зависит от размеров изображения и размеров области поиска.

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

34

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

В AutoHotKey_L есть команда PixelGetColor, позволяющая узнать текущий цвет заданного пиксела на экране.
А вот интересно, с какой максимальной частотой она работает?
Вот к примеру 10 млн. опросов пикселов за 1 секунду возможно ей сделать?

А может быстрей будет проверять пикселы если вначале сделать скриншот сразу всего экрана в файл, а потом уже в файле чекать пикселы? При этом сам файл скриншота для убыстрения доступа разместить в RAM-диске?

35

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Ну вот проверьте, потом нам и скажете.

36 (изменено: Доктор ТуамОсес, 2014-01-12 18:42:11)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Проверил. Где-то 40 000 опросов одного и того же пиксела успевает за 1 секунду сделать на моём 7-ми летнем ноуте.

Я думаю если бы я опрашивал разные пикселы скорость бы не изменилась. Ведь он же не хард диск опрашивает где время доступа зависит от положения этих данных относительно предыдущих считанных данных

37

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

Доктор ТуамОсес пишет:

Проверил. Где-то 40 000 опросов одного и того же пиксела успевает за 1 секунду сделать на моём 7-ми летнем ноуте.

А на экране 700 000 пикселов.

Т.е. даже просто чтобы считать инфу о цвете каждого пиксела без анализа ему потребуется примерно 20 секунд.
А ведь ещё нужно проанализировать картинку в целом.

Короче пока идет вся эта работа изображение на экране тысячу раз изменится.

Так что для можно распознавать только статичные объекты.

38 (изменено: Доктор ТуамОсес, 2015-07-01 14:20:03)

Re: OFF: Macro ToolsWorks vs. AutoHotKey vs. Sikuli vs. ...

А реально он распознавал/находил на экране квадратик с картинкой размером 30х30 пикселов за пару секунд.

Мистика прям какая-то

Видать он не втупую все подряд пикселы просматривает и тупо сравнивает с пикселами квадратика.

А как-то по умному