1 (изменено: 1srafel, Вчера 07:39:19)

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

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

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

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




https://disk.yandex.ru/i/J94REcWgMSqziQ

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()