Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Atas on November 17, 2020, 08:53:11 AM
-
Если Clickermann не позволяет искать картинки, которые находятся вне папки проекта (например, на другом жестком диске, или в сетевой папке), то его можно обмануть.
Для этого нужно создать в Windows символическую ссылку (https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0) (симлинк) на искомую картинку, или папку с картинками. Любая программа в системе может обращаться к такой ссылке по её адресу, как к реальной папке (или файлу), которые на самом деле находятся совсем в другом месте и даже имеют другие имена.
Сделать симлинк можно в Командной строке. Для вызова справки по команде MKLINK, в Командной строке пишем:
mklink /?
Синтаксис MKLINK очень простой, так что расписывать тут особо нечего, да и в интернете информации по этому вопросу много.
Для примера, создадим симлинк на папку с картинками:
- Папка проекта - "C:\Проект" (в ней лежит наш скрипт).
- Папка с картинками на другом диске - "D:\Pictures".
- Нам нужно создать симлинк в папке проекта, с новым именем "Картинки", так, чтобы Clickermann мог находить картинки по адресу "C:\Проект\Картинки".
Папку "C:\Проект\Картинки" создавать не нужно, вместо неё будет ссылка.
В Командной строке пишем:
mklink /D "C:\Проект\Картинки" "D:\Pictures"
Нажимаем Enter.
Если видим сообщение - "символическая ссылка создана для C:\Проект\Картинки <<===>> D:\Pictures", значит всё получилось. :)
Теперь, например функция SCANPICTURE, сможет находить изображения в папке своего проекта, в несуществующей папке "Картинки", которые на самом деле лежат в папке "Pictures" на другом физическом диске. :)
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "\Картинки\picture.bmp", -1, 100)
-
Сам недавно начал использовать симлинки в винде после линукса. Почитал про всякие Hard Links, Junction Points и Symbolic Links.
Я так понял Junction Points с некоторого времени не актуален, т.к. Symbolic Links стали поддерживать каталоги. Но присутствует для совместимости и путается.
Ещё удобно использовать переменные окружения. Прописываешь на разных компах свой путь в переменной, а скрипт юзает пути через системную переменную.
Например. У меня все проекты на ЯндексДиске. На разных компах YandexDisk лежит на разных логических дисках.
D:\YandexDisk
C:\YandexDisk
F:\Rabochaya\YandexDisk
Создаём свою постоянную глобальную переменная окружения для всех пользователей на YandexDisk для первого компа
setx /M YandexDisk D:\YandexDisk
на других компах по аналогии.
используем дальше как %YandexDisk% где хотим, хоть в cmd, хоть в кликере
mklink "server_config.txt" "%YandexDisk%\Server\data\server_config.txt"
Можем создать переменную на папку кликера
setx /M Clickermann "D:\YandexDisk\Clickermann v4.14.003b x32"
Выводим все переменные
set
там в куче есть и наши созданные переменные
...
Clickermann=D:\YandexDisk\Clickermann v4.14.003b x32
...
YandexDisk=D:\YandexDisk
или через Свойства системы ==>> Переменные среды
Используем в cmd
cd /d %Clickermann%
или в кликере
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "%Clickermann%\projects\МойЧудоСкрипт\picture.bmp")