1 (изменено: 1srafel, Сегодня 03:05:01)

Тема: AHK: FileZones — быстрый доступ к файлам и папкам

Скрипт создаёт компактное окно с 6 настраиваемыми зонами (3×2), в каждой из которых можно держать быстрый доступ к папкам и файлам.

Возможности:

- Привязка папки к зоне — содержимое папки отображается в зоне и обновляется автоматически; можно скрывать отдельные объекты или всю папку без удаления файлов с диска.
- Ручное добавление файлов и папок в любую зону вместе с содержимым привязанной папки.
- Drag & Drop — перетаскивание файлов из Проводника в зону и между зонами; порядок объектов можно менять вручную.
- Три вида отображения: таблица с сортировкой по столбцам, крупные и обычные значки.
- Настройка внешнего вида: цвет каждой зоны, палитра, размер шрифтов, эскизы для выбранных типов файлов.
- Переименование зон, сброс к стандартному названию при очистке.
- Значок в трее с меню (показать/скрыть окно, настройки, справка, редактирование скрипта).
- Управление из внешнего AHK-скрипта — можно показывать/скрывать окно программно через оконное сообщение.
- Все настройки хранятся в INI-файле рядом со скриптом.
- Встроенная справка прямо в программе — описывает все команды, форматы файла настроек и способы внешнего управления.

---

https://github.com/Iskander1220/AutoHotkey_FileZones

2 (изменено: 1srafel, Вчера 07:29:51)

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Не сработала отправка кода (3 тыс. строк) и присоединение, поэтому дал ссылку на ЯндексДиск.

3

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Код для запуска из стороннего скрипта:



global ZonesPID := 0
global WM_ZONES_TOGGLE := 0x8042


ToggleZones() {
    global ZonesPID, WM_ZONES_TOGGLE

    hwnd := 0

    ; Сначала ищем окно ранее запущенного процесса.
    if (ZonesPID) {
        Process, Exist, %ZonesPID%
        if (ErrorLevel = ZonesPID)
            hwnd := WinExist("ahk_pid " ZonesPID " ahk_class AutoHotkeyGUI")
        else
            ZonesPID := 0
    }

    ; Например, процесс мог быть запущен вручную.
    if (!hwnd)
        hwnd := WinExist("FileZones ahk_class AutoHotkeyGUI")

    if (hwnd) {
        WinGet, ZonesPID, PID, ahk_id %hwnd%
        PostMessage, %WM_ZONES_TOGGLE%, 0, 0,, ahk_id %hwnd%
    } else {
        Run, % """" A_ScriptDir "\Include\FileZones.ahk""", %A_ScriptDir%, UseErrorLevel, ZonesPID
    }
}

Хоткей::
ToggleZones()

4

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Яндекс-диск — не лучший выбор, он для скачивания потребовал авторизации с отправкой кода на телефон, геморройно, а без аккаунта вообще не скачать. Советую освоить GitHub.
Приложение у меня на ноутбуке с масштабированием экрана 200% открылось так:

+ открыть спойлер

https://i.ibb.co/Z6P6yCXc/77d7d2e1b981.png

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

+ открыть спойлер

https://i.ibb.co/whJS20tB/6c2d6217fec5.png

При указании внутренних координат в GUI нужно учитывать DPI (переменная A_ScreenDPI). Если указываете, например, ширину окна 500, то при масштабировании экрана 200% окно будет 1000 экранных пикселей в ширину.

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

5

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Скрипт перенесен на GitHub и внесены правки:

- добавлен коэффициент масштабирования на основе A_ScreenDPI / 96;
- внутренние размеры, отступы, зоны, кнопки и маркеры теперь переводятся в физические пиксели через Dpi();
- исключено повторное масштабирование динамически рассчитываемых координат;
- адаптировано главное окно и окно справки.

6

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Пока не получилось:

+ открыть спойлер

https://i.ibb.co/C3FJpvFw/e37d8d5ca771.png

Кроме того, файл скачивается в кодировке UTF-8 без BOM, поэтому при запуске выдаёт ошибку:

Error at line 761.

Line Text: . "<p>Загрузка проходит в два этапа:</p>`r`n"
Error: Continuation section too long.

The program will exit.

Нужно, чтобы файл изначально был сохранён в UTF-8 с BOM и в таком виде закачан на GitHub (а не создан там из текста).

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

7

Re: AHK: FileZones — быстрый доступ к файлам и папкам

Обновил.