Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: olegnd on March 12, 2019, 03:38:10 PM
-
Добрый день, подскажите, как исправить ошибку скрипта или найти иной подход для реализации поставленной задачи.
Задача :-\:
0. Использовались версии Clickermann v4.14.000B x32, Clickermann v4.13.014 x64, Win10x64, WinXPx32.
1. Делается скриншот, проверяется на совпадения картинок или нет
2. Если картинка находится, то при сохранении картинки в файл берётся название из списка.
Проблемы :'( :
- при отработке строчки кода #35 "SCREENSHOTFIX(0,0, $_xmax,$_ymax, STRCONCAT($str1, $xname1, $str2), 0)"..., выдается сообщение об ошибке интерпретации строки:...(см.скрин ошибка.jpg вложения)
//Clickermann v4.14.000B x32
//окна, переменные
$winExcel=WNDFIND("image_spisok_name.xlsx - Excel", 0)
$str1="d:\image_spisok_name\save\"
$str2=".bmp"
//выбрать окно программы "Excel"
WNDBUMP($winExcel)
WAIT(1)
//Делаем скриншот активного окна программы, для поиска нужной картинки
GETSCREEN
COLORMODE(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "image1.bmp", -1, 100)
//ЕСЛИ_Картинка найдена то...
//выбрать Excel список названий файлов картинок
WAIT(2)
WNDBUMP($winExcel)
WAIT(1)
//коп.названия файла картинки в буфер памяти
KEYPRESS (#DOWN)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#C)
KEYUP (#CTRL)
WAIT(1)
$xname1=FROMCLIP()
//просмотр буфер памяти что скопировалось
HINTPOPUP($xname1, "Картинка найдена")
WAIT(1)
SCREENSHOTFIX(0,0, $_xmax,$_ymax, STRCONCAT($str1, $xname1, $str2), 0)
ELSE
//Иначе_Картинка не найдена
SCREENSHOT
//просмотр буфер памяти что скопировалось
HINTPOPUP($xname1, "Картинка не найдена")
//КОНЕЦ_"ЕСЛИ..." - конец условия
END_IF
//Стоп программа
HALT
Варианты исправлений кода ни к чему не привели смена переменных, их порядок, версий программы и т.д., Форум перечитывал, искал но решения не увидел или просмотрел :(.
Буду рад любым подсказкам, советам, решениям, направлениям или иного подхода для реализации поставленной задачи данными версиями Clickermann если это возможно. Скрины и краткий код прилагаются :-[.
-
Папка указанная в пути существует? Потому что если нет то будет ошибка.
-
Еще хорошо бы почистить строку из буфера от лишних символов вот таким фильтром
$xname1=STRFILTER(FROMCLIP(), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz1234567890-.() ", 1)
-
Папка указанная в пути существует? Потому что если нет то будет ошибка.
да, папка присутствует, испробую ваш совет, но сообщения буфера памяти не показывает лишнего или возможны скрытые коды каких то символов..
-
Еще хорошо бы почистить строку из буфера от лишних символов вот таким фильтром
$xname1=STRFILTER(FROMCLIP(), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz1234567890-.() ", 1)
спасибо, испробовал, ваш код добавил перед копированием в буфер памяти и та же самая ошибка при интерпретации строки...
Где ещё покопать :)
-
Может стоит изучить тот путь который в итоге формируется
$xname1=STRFILTER(FROMCLIP(), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz1234567890-.() ", 1)
$path = STRCONCAT($str1, $xname1, $str2)
LOGWRITE ($path)
-
Может стоит изучить тот путь который в итоге формируется
$xname1=STRFILTER(FROMCLIP(), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz1234567890-.() ", 1)
$path = STRCONCAT($str1, $xname1, $str2)
LOGWRITE ($path)
...
$xname1=FROMCLIP()
//анализ правильности пути сохранения файлов из буфера памяти
$path = STRCONCAT($str1, $xname1, $str2)
LOGWRITE ($path)
//просмотр буфер памяти что скопировалось
HINTPOPUP($xname1, "Картинка найдена")
WAIT(1)
SCREENSHOTFIX(0,0, $_xmax,$_ymax, STRCONCAT($str1, $xname1, $str2), 0)
ELSE
...
запуск от имени админа, лог по пути отсутствует, папка пуста изменил на другую папку пример d:\save\ папку, тоже самое..
+ лог в самой папке Clickermana
12.03.2019 19:08:04 Thread _MAIN(0) raise exception
12.03.2019 19:09:11 Thread _MAIN(0) raise exception
12.03.2019 19:12:11 Thread _MAIN(0) raise exception
12.03.2019 19:14:30 Thread _MAIN(0) raise exception
-
лог по пути отсутствует, папка пуста
+ лог в самой папке Clickermana
12.03.2019 19:08:04 Thread _MAIN(0) raise exception
12.03.2019 19:09:11 Thread _MAIN(0) raise exception
12.03.2019 19:12:11 Thread _MAIN(0) raise exception
12.03.2019 19:14:30 Thread _MAIN(0) raise exception
Чего? Открой лог и посмотри что там! Ищи значок блокнота.
-
лог по пути отсутствует, папка пуста
+ лог в самой папке Clickermana
12.03.2019 19:08:04 Thread _MAIN(0) raise exception
12.03.2019 19:09:11 Thread _MAIN(0) raise exception
12.03.2019 19:12:11 Thread _MAIN(0) raise exception
12.03.2019 19:14:30 Thread _MAIN(0) raise exception
Чего? Открой лог и посмотри что там! Ищи значок блокнота.
папка c:\Clickermann v4.14 x32\errorlog.txt - значок блокнота
в нём
12.03.2019 19:08:04 Thread _MAIN(0) raise exception
12.03.2019 19:09:11 Thread _MAIN(0) raise exception
12.03.2019 19:12:11 Thread _MAIN(0) raise exception
12.03.2019 19:14:30 Thread _MAIN(0) raise exception
правильно или что-то не так :-[
-
папка c:\Clickermann v4.14 x32\errorlog.txt - значок блокнота
-
(http://скрин)
(http://скрин2)
-
Еще хорошо бы почистить строку из буфера от лишних символов вот таким фильтром
$xname1=STRFILTER(FROMCLIP(), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz1234567890-.() ", 1)
Oraven спасибо :o, заработало, а то этот код, уже начал снится по ночах,
как всегда "истина была где-то рядом" сказал слепой Пью 8) или Девид Духовный :o , неважно.
- сначала сбила столку сама фраза-намек "...Еще хорошо бы почистить строку из буфера от лишних символов..." если копируем то зачем очищать то :D
- потом куда этот фильтр пристроить, какой строчкой 1., 8, 10. и т.д. у вас начинается 1.
- код "$xname1=FROMCLIP()" который по своей простой логике почему то не работает, нужно заменить кодом-конструкцией "очистным фильтром" (http://crapware.aidf.org/forum/index.php?topic=4543.msg31111#msg31111).
кажись все правильно перечислил, если нет, поправьте...
-
- сначала сбила столку сама фраза-намек "...Еще хорошо бы почистить строку из буфера от лишних символов..." если копируем то зачем очищать то :D
Затем что при копировании текста из ячейки эксель всегда в конце добавляется невидимые символы перевода строки. Они то и ломали путь.
- потом куда этот фильтр пристроить, какой строчкой 1., 8, 10. и т.д. у вас начинается 1.
- код "$xname1=FROMCLIP()" который по своей простой логике почему то не работает, нужно заменить кодом-конструкцией "очистным фильтром".
Очевидно что за место $xname1=FROMCLIP()