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 - Мыха

Pages: 1 [2] 3
16
Приветствую уважаемую публику.

Безусловно, помощь в играх, накручивание счётчиков сайтов и разные другие великие дела "джентельменов в поисках десятки (ц)" - замечательное применение для Кликерманна.

Хотелось бы поговорить о гораздо  более серьёзных вопросах, в частности про автоматизированные системы управления технологическими процессами. Видели бы Вы, дорогие читатели, какие астрономические суммы в это дело вкладывают крупные корпорации и какие скромные результаты они взамен получают!!!

Вообще, системы АСУТП - вещи сложные, было бы наивно полагать, что Кликерманн сам по себе запросто с такими задачами справится в одиночку. Но вот замечательными "глазами" и "руками", так недостающими этим системам, Кликерман, ИМХО, может стать замечательным подспорьем.

Типичная схема бюджетного АСУТП сводится к компьютеру, к которому подключаются самые разные приборы и механизмы по самым разным интерфейсам, с самым разным собственным ПО, рассчитанным на человека - оператора. И вот как раз собрать все данные воедино, переслать их куда следует, и обратно получить команды воздействия на подключенные приборы - как раз замечательная для Кликерманна задача.

Но тут же и начинаются проблемы. Вот с чем я столкнулся для начала.

1. вот прибор. https://eni-bbmv.ru/index.php/ru/catalog/item/11-metrologicheskoe-oborudovanie/25-istochnik-kalibrovannykh-signalov-kalibrator-eni-201i Вот его программное обеспечение. https://eni-bbmv.ru/images/katalog/product/25/EnI-201I_PO_02_01_0000.rar
 Весит мало, вирусов нет, поэкспериментировать недолго.  Интерфейс программного обеспечения по сути повторяет лицевую панель прибора, отображая на неё информацию и позволяя виртуально нажимать на кнопки управления. Чем, по мнению разработчиков, такой подход лучше, чем просто просмотр и нажатие кнопок непосредственно на приборе - остаётся загадкой.

Проблема в следующем. Вот код, чесно спёртый на сайте Кликерманна.
Code: (clickermann) [Select]
GETSCREEN // получаем скриншот экрана
COLORMODE(3) // применяем к нему COLORMODE
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // поиск изображения
  // здесь прописываем команды на случай, если картинка найдена
ELSE // условия для "иначе"
  // Тут прописываем действия, если картинка не найдена
END_IF // конец условия
Для начала записываю картинку без привязки к окну. Вместо 0,0, $_xmax,$_ymax вбиваю в код реальные координаты. Вот как видит Кликерманн окно программы без привязки к окну.


Теперь делаю привязку к окну, код получения картинки - как в исходнике. вот результат.


Кликерманн использовался на Windows XP (машина производственная), но уверен, что от версии Виндовс ничего не зависит.

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

Может  что то простого и банального не знаю?

UPD

с картинками не совладал. вот первая: https://ibb.co/yF3ymHL
вот вторая https://ibb.co/5rr4CH6

17
Использование / Re: Помогите разобраться
« on: January 18, 2021, 09:58:47 AM »
Вам виднее. А я специально не стал ему готовый скрипт писать. Чтобы простимулировать самостоятельную работу. А результата он и рекодером достиг бы. Но Вам виднее.

18
Общие вопросы / Re: Не видит "блюстак"
« on: January 18, 2021, 09:54:38 AM »
bluestacks в полноэкранном режиме у меня работает без нареканий. Про оконный режим работы  - отдельная тёрка за пределами этой темы. Сам пока разбираюсь.

19
вскочил следующий вопрос

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


???

20
Использование / Re: Помогите разобраться
« on: January 14, 2021, 01:36:23 PM »
запускаешь кликерманн
нажимаешь альт r и обращаешь внимание, как изменились кнопки на кликерманне
нажимаешь Ctrl + Shift + S
нашимаешь альт s и обращаешь внимание, как изменились кнопки на кликерманне

в кликерманне в панелях находишь этакую шестерёнку. при нажатии на неё выпадает меню, что то типа вариантов повтора. ставишь там - неограниченное количество повторов, ставишь там же галочку с интервалом, ставишь нужный интервал повтора в секундах.

далее нажимаешь альт а(англ) и всё должно заработать

для остановки нажимаешь альт s

21
в firefox всё работает. наверное придётся туда переделывать

22
Есть же функция замены подстроки. Как собрал свою строку с разделителями, так делай замену точки.
Или в эксель поменяй разделитель.

наверное, STRREPLACE подойдёт. надо пробовать, изучать, но чуть позже.

у меня следующий вопрос.

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

нашёл расширение для хрома: Plain Text Linker . Наводишь мышь на текст ссылки, нажимаешь шифт, делаешь двойной щелчок левой кнопкой мыши, отпускаешь шифт. ссылка открывается в новом окне. С кликерманном - работать не хочет. даже специально записл действия макрорекордером кликерманна, которые при записи привели к успешному открытию ссылки. повторяю действия - не срабатывает,  Plain Text Linker говорит о неверной ссылке. Можно что нибудь сделать, или есть идеи, как по другому выкрутиться?

Code: (clickermann) [Select]
// RECORDED SCRIPT 09.01.2021
// waitms correction
$S_CORR = 0

waitms(12 + $S_CORR)
move(420,641)
waitms(526 + $S_CORR)
  keyDown(16)
waitms(1 + $S_CORR)
  keyDown(160)
waitms(398 + $S_CORR)
move(420,640)
waitms(16 + $S_CORR)
move(422,639)
waitms(9 + $S_CORR)
move(423,638)
waitms(8 + $S_CORR)
move(425,637)
waitms(8 + $S_CORR)
move(428,636)
waitms(7 + $S_CORR)
move(431,634)
waitms(8 + $S_CORR)
move(434,631)
waitms(9 + $S_CORR)
move(437,629)
waitms(8 + $S_CORR)
move(439,627)
waitms(7 + $S_CORR)
move(446,620)
waitms(9 + $S_CORR)
move(451,616)
waitms(7 + $S_CORR)
move(456,612)
waitms(8 + $S_CORR)
move(459,609)
waitms(9 + $S_CORR)
move(461,608)
waitms(7 + $S_CORR)
move(464,604)
waitms(8 + $S_CORR)
move(467,601)
waitms(8 + $S_CORR)
move(469,598)
waitms(8 + $S_CORR)
move(471,597)
waitms(9 + $S_CORR)
move(472,595)
waitms(7 + $S_CORR)
move(473,594)
waitms(16 + $S_CORR)
move(473,593)
waitms(8 + $S_CORR)
move(474,593)
waitms(8 + $S_CORR)
move(474,592)
waitms(112 + $S_CORR)
move(472,593)
waitms(8 + $S_CORR)
move(471,594)
waitms(9 + $S_CORR)
move(470,595)
waitms(7 + $S_CORR)
move(467,596)
waitms(8 + $S_CORR)
move(466,597)
waitms(8 + $S_CORR)
move(463,599)
waitms(8 + $S_CORR)
move(459,602)
waitms(8 + $S_CORR)
move(456,605)
waitms(8 + $S_CORR)
move(453,608)
waitms(8 + $S_CORR)
move(450,611)
waitms(9 + $S_CORR)
move(447,612)
waitms(7 + $S_CORR)
move(446,614)
waitms(9 + $S_CORR)
move(444,616)
waitms(16 + $S_CORR)
move(442,617)
waitms(7 + $S_CORR)
move(442,618)
waitms(16 + $S_CORR)
move(441,618)
waitms(8 + $S_CORR)
move(441,619)
waitms(8 + $S_CORR)
move(441,620)
waitms(25 + $S_CORR)
move(440,621)
waitms(24 + $S_CORR)
move(439,622)
waitms(15 + $S_CORR)
move(439,623)
waitms(7 + $S_CORR)
move(439,624)
waitms(25 + $S_CORR)
move(439,625)
waitms(15 + $S_CORR)
move(439,626)
waitms(16 + $S_CORR)
move(439,627)
waitms(8 + $S_CORR)
move(439,628)
waitms(25 + $S_CORR)
move(439,629)
waitms(24 + $S_CORR)
move(439,630)
waitms(23 + $S_CORR)
move(439,631)
waitms(16 + $S_CORR)
move(439,632)
waitms(39 + $S_CORR)
move(439,633)
waitms(32 + $S_CORR)
move(439,634)
waitms(513 + $S_CORR)
move(439,635)
waitms(31 + $S_CORR)
move(439,636)
waitms(81 + $S_CORR)
move(439,637)
waitms(72 + $S_CORR)
move(439,638)
waitms(31 + $S_CORR)
move(439,639)
waitms(385 + $S_CORR)
  lDown(439,639)
waitms(87 + $S_CORR)
  lUp(439,639)
waitms(48 + $S_CORR)
move(438,639)
waitms(81 + $S_CORR)
  lDown(438,639)
waitms(103 + $S_CORR)
  lUp(438,639)
waitms(722 + $S_CORR)
  keyUp(160)
waitms(0 + $S_CORR)
  keyUp(16)
waitms(886 + $S_CORR)
move(438,638)
waitms(34 + $S_CORR)
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(226 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 13:36:21

23
сам задал вопрос, сам на него и отвечаю

Code: (clickermann) [Select]
$a=1
$b=2
$c=2.7172
TFDelete("input.csv", 1)
tfwrite("input.csv", STRCONCAT($a, ";", $b, ";", $c))
halt

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

24
приветствую уважаемую публику!

на повестке дня следущя фигня.

хотелось бы наладить передачу значений переменных из Кликерманна в VBA Excel. Команды TFWRITE и возможно TFWRITEARR создают читающиеся *.csv файлы, но для пущего удобства хотелось бы отправлять текущее сообщение в VBA в виде одной строки, т.е.

либо нужно составить текстовую переменную $z как совокупность численных (хотя бы целых) переменных в таком виде $z="$a;$b;$c "и так далее. тогда можно будет воспользоваться командой TFWrite("output.csv", $z), в котором все переменные попадут в отдельные ячейки одной строки

либо нужно как то сформировать команду TFWrite("output.csv", ???), где ??? - текстовая последовательность из переменных, разделённых ;

либо как то еще, как я не знаю и или не догадался

в принципе я привередничаю, прокатывает последовательность команд TFWrite, в которых по очереди в .csv передаются все переменные, которые записываются в отдельные строки первого столбца. Но удобство страдает. Подскажете?

25
Использование / Re: Помогите разобраться
« on: January 08, 2021, 07:57:40 AM »
Каникулы, сэр.

каникулы, конечно, тоже причём. После работы времени мало. Поэтому мы просто подождали, пока Вы всё отладите, вот теперь и взялись за дело.

26
Общие вопросы / Re: IF_PICTURE_IN - Для новичков
« on: January 07, 2021, 01:17:33 AM »
а, кажись понял.

Code: (clickermann) [Select]
LCLICK($_return1, $_return2) - это щелчок мыши по заранее заданной точке(return1, return2). Это, видимо, для автоматизации какой нибудь игры скорее всего. Здесь другой случай. в зависимости от того, загрузилась ли картинка нормально, или нет, дальше начинаются две непересекающиеся ветви программы, которые заканчивают свою работу самостоятельно.  в общем, смысл понятен, спасибо.

З.Ы. встроенную справку нашёл. Спасибо. Барабанную дробь можно выключать.

27
Общие вопросы / Re: IF_PICTURE_IN - Для новичков
« on: January 06, 2021, 07:26:55 PM »
крутяк!

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

но я не понимаю, что здесь означает левый клик по координатам $_return1, $_return2 ? и что это вообще за координаты? где еще есть мануалы?

и еще такой вопрос. есть ли мануалы, которые объясняют, что за параметры в операторе IF_PICTURE_IN после имени файла?

28
Общие вопросы / Re: IF_PICTURE_IN - Для новичков
« on: January 05, 2021, 11:44:52 PM »
приветствую уважаемую публику

вскочил такой вопрос

типовая задача примерно такая. нажимаем на ссылку и ждём загрузки страницы. страница может загрузиться быстро, может - медленно, может вообще не загрузиться, может загрузиться не та, что хотелось бы. Фрагмент страницы, указывающей на её правильную загрузку, естественно заранее лежит в bmp файле. Хотелка состоит в том, чтобы не ждать по 10 - 20 секунд, перед единственной проверкой  IF_PICTURE_IN, а проверять в цикле, с интервалом например 2 ... 3 секунды. У меня сложилась идея решения, которая мне не очень нравится, а другого придумать не могу. Вот так можно делать? Заранее извиняюсь, (весь синтаксис операторов кликерманна пока не освоил, но смысл логических действий ведь везде одинаковый)

(запуск загрузки интернет страницы)
n=1
метка a
getscreen (все параметры)
colormode (все параметры)
IF_PICTURE_IN(все параметры)
(что делать, когда правильно загрузится)
else
ждать 1 секунду//или 2 ...3 секунды, по конкретной ситуации
n=n+1
     если n<10//или любое другое подходящее количество повторов
     переход по метке a
     иначе
     (действия в случае неудачи, вероятно выход из цикла переходом по отдельной метке)
     конец если
END_IF

такие вылеты из циклов и операторов условий допустимы? нормальны? или это как то по иному нужно запиливать?

29
Быстренько завернись обратно и удались из вводных статей, тут дети кругом ни дай бог, кто случайно увидит, использование оконного режима Clickermann в полноэкранном режиме эмулятора,однозначно трактуется присяжными заседателями, как умышленное  издевательство над смыслом в грубой и извращённой форме.

мне в этот момент должно быть стыдно?

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

30
Общие вопросы / Re: IF_PICTURE_IN - Для новичков
« on: January 03, 2021, 08:59:59 PM »
да, прокатило! урок усвоен. мои благодарности.

З.Ы. print (ошибка состояния) используется для отладки, чтобы знать, где упало.

Еще раз спасибо

Pages: 1 [2] 3