===================================================================== AJPapps - Show custom menu 3.02 Линда Кайе 2010-2023. Посвящается Ариэль ===================================================================== Маленькая программа для вывода менюшек на экран. Скажем, если на одну горячую клавишу хочется повесить несколько программ, эта программа поможет вывести на экран меню с выбором одной из этих программ. История создания ---------------- Так получилось, что у меня есть несколько файлов дневников, и все завязаны на клавише D: Win+Shift+D, Win+Shift+Ctrl+D... В общем-то не очень страшно, но оказалось, что на ноутбуке нажимать это сложновато. Вот я и решила реализовать давнишнюю задумку. Правда, поначалу я планировала сделать обычное меню, но в итоге отказалась в пользу формы со списком. История изменений ----------------- • 1.00.0006 Первый публичный релиз. • 1.00.0007 [+] Кнопка F4 открывает CustomMenu файл для редактирования. • 1.00.0008 [+] Немного изменила внешний вид окна, должно стать красивее. • 1.00.0009 [+] Относительные пути в .CustomMenu файле теперь всегда работают относительно расположения самого файла. • 2.00.0011 [+] Появился полноценный редактор меню, так что теперь не нужно править файл меню в Блокноте. [+] При ошибке запуска пункта, меню не закрывается. • 2.00.0012 [-] Теперь нельзя добавить больше пунктов меню, чем программа ожидает увидеть в файле. Текущее ограничение - 100 элементов. • 2.00.0013 [+] Теперь ограничение на количество пунктов меню - 1000. • 2.01.0016 [+] Если пункт меню запустить, удерживая клавишу Shift, то меню не закроется. • 2.01.0017 [-] В окне редактирования пункта меню кнопка "Обзор" напротив элемента "Параметры" устанавливала значение для элемента "Имя файла", а не "Параметры". • 3.00.0024 [+] Можно менять размеры окна меню. [+] Размеры и положение окна меню запоминаются для каждого файла отдельно. Данные о положении окна сохраняются в системном реестре и не затрагивают сам файл меню. [-] Редактирование файла меню во внешнем файле запускалось через Ctrl+F4, а не Shift+F4, как было указано в документации. • 3.01.0032 [21.07.2020] [+] Теперь при сохранении файла меню, его атрибуты сохраняются. [-] При открытии редактора меню, окно пропадало из списка Alt+Tab. [+] Небольшой редизайн окна меню, чтобы побороть предыдщую проблему. Заголовок теперь большой, но нет кнопки закрытия окна и иконки. Esc работает, как и прежде. • 3.02.0046 [24.02.2023] [+] У главного окна появилась кнопка закрытия. А ведь начиналось всё с маленького заголовка... [+] У главного окна используется ностальгическая иконка вместо главной громоздкой. [+] В редакторе файла появилась кнопка копирования элемента, которая открывает окно создания нового элемента, заполненное данными текущего выделенного. [-] Подложка в главном окне не ресайзилась вместе с окном. [+] В заголовке окна редактора файла теперь выводится имя открытого файла. [+] Справке по использованию программы теперь выводится стандартный заголовок. Зависимости ----------- Для работы этой программы нужны следующие компоненты: • AJPapps - AJPapps support library 1.00 Файл AJPappsSupport0100.DLL • AJPapps - AJPapps support library FBE 1.00 Файл AJPappsSupportFBE0100.DLL • AJPapps - Ageha history 1.00 Файл AgehaHistory0100.DLL • AJPapps - Common dialogs library 1.00 Файл CommonDialogs0100.DLL • AJPapps - Registry support 2.00 Файл RegistrySupport0200.DLL • AJPapps - Библиотека общих функций 3.06 Файл CommonFunctions0306.DLL • Microsoft Visual Basic Virtual Machine Файл MSVBVM60.DLL Эти компоненты обязательны. Они уже включены в программу установки ^_^ Информация о разработке ----------------------- Язык: Microsoft Visual Basic 6.0 SP6 Платформа: Windows XP Professional SP3 Установка --------- Просто запустите Setup.ShowCustomMenu.EXE, и программа установки сама создаст все необходимые ярлыки. Использование ------------- При установке программа ассоциирует себя с файлами .CustomMenu. То есть достаточно дважды щёлкнуть на любом из них, чтобы запустилась программа (имя файла передаётся в командно строке) и показала меню. Однако для того чтобы создать новый файл достаточно просто запустить программу и ответить на вопрос программы утвердительно. Появится окно редактирования меню, в котором можно создать все необходимые пункты. Главное окно программы ---------------------- Оно представляет из себя небольшое окошко со списком - собственно, меню. Пункт выбирается мышью или стрелками клавиатуры и запускается двойным щелчком или кнопкой Enter. После этого меню исчезает, а на экране появляется выбранная программа или документ. Если же при запуске пункта удерживать клавишу Shift, то меню не закроется, и можно будет запустить что-нибудь ещё. В окне работают следующие горячие клавиши: F1 - справка (этот файл). Shift+F1 - окно о программе. F3 / Shift+F3 - открыть другой файл меню. F4 - редактировать открытое меню. Shift+F4 - открыть текущий файл меню для ручного редактирования. Esc - закрыть программу не вызывая никаких команд. Редактирование меню ------------------- При нажатии F4 или при запуске программы без каких-либо параметров открывается специальное окошко, в котором можно настроить меню: добавить новые пункты, удалить лишние, поменять их местами, а также указать заголовок меню. Кнопки управления пунктами находятся справа от списка. Им эквивалентны горячие клавиши: Ctrl+A - добавить пункт. Ctrl+E - редактировать выбранный пункт. Ctrl+R - удалить выбранный пункт. Ctrl+Up - переместить выбранный пункт вверх. Ctrl+Down - переместить выбранный пункт вниз. После того как всё будет готово, достаточно нажать кнопку "Сохранить", и программа запишет все изменения в открытый файл меню. Если же программа была запущена без открытия файла, то она предложит указать, где и под каким именем сохранить файл. Также можно сохранить новый файл прямо из этого окна, нажав "Сохранить", удерживая Shift. В этом случае будет выдан запрос на сохранение файла под новым именем, а предыдущий файл останется без изменений. Редактирование пункта меню -------------------------- При добавлении или редактировании пункта появится дополнительное окно со свойствами пункта. Вот их краткое описание. Заголовок - текст, введённый здесь, появляется в виде пункта меню. Больше он ни на что не влияет. Имя файла - имя исполняемого файла или документа, который должен открыть пункт меню. Допускаются относительные имена файлов. Так, если программа Ariel.EXE находится в подкаталоге Atlantica каталога, в котором находится ваш CustomMenu файл, то можно вписать здесь Atlantica\Ariel.EXE. Операция - что требуется сделать с файлом. Оставьте "open", если не знаете, что это такое. Параметры - если в поле "Имя файла" вы указали скрипт или программу, то здесь можно указать аргументы, которые необходимо передать. Например, имя документа, который должна открыть программа. Это поле можно оставить пустым. Каталог - каталог по умолчанию для запущенной команды. Обычно - каталог, в котором находится файл из поля "Имя файла". Можно оставить это поле пустым. Стиль окна - каким будет по умолчанию окно запущенной программы. Я рекомендую оставить SW_SHOWDEFAULT и не трогать этот пункт без надобности. Формат файла меню ----------------- ВНИМАНИЕ! Так как в программе появился редактор меню, этот раздел можно не читать. Он предназначен для опытных пользователей, желающих понять, как устроен файл меню и, возможно, автоматизировать создание новых файлов с помощью сторонних программ м скриптов. Сами файлы - это обычные INI файлы, похожие на файл настройки AJPapps - Global hotkeys. В каждом из них находится секция настроек меню и 100 (от 0 до 99) секций с пунктами меню. Вот пример секции настроек меню: [Options] Title=Test menu Параметр Title задаёт заголовок окна меню. Если тут будет пусто или параметр будет отсутствовать, программа не покажет заголовок вообще. Секции с описанием пунктов меню выглядят так: [Item 1] Title=Ariel's photo Operation=Open FileName=PhotoDisplay.EXE Parameters=Z:\Photos\Ariel.JPG Directory=Z:\ ShowCommand=SW_SHOWDEFAULT Этот пункт меню запускает программу PhotoDisplay.EXE и передаёт ей имя некоего файла. Название секции - "Item N", где N - число от 0 до 99. По этому числу сортируются пункты меню. Title - задаёт текст пункта меню. Если тут пусто, пункт в меню не появится. FileName - задаёт имя исполняемого файла или документа. Для приложений применимы все правила поиска, определённые в Windows: переменная окружения PATH, значение AppPaths в реестре. Если указано имя файла документа, то для его открытия будет запущена ассоциированная программа. В этом ключе нельзя указывать параметры программы. Используйте для этого ключ Parameters. Если тут пусто, пункт не появится в меню. Parameters - параметры запуска программы, командная строка. Например, для Блокнота здесь может быть указано имя файла, который необходимо открыть. По умолчанию - пустая строка. Operation - имя действия, которое необходимо выполнить с указанным файлом. По умолчанию - "open". Поддерживаемые имена действий для заданного типа файла содержатся в реестре, и каждому действию сопоставлены свои параметры запуска программы. Например, для файла TXT, который ассоциирован с Блокнотом, поддерживаются действия "Open", "Print" и "Printto", причём первые две применяются наиболее часто для многих типов документов: для открытия и печати соответственно. Directory - задаёт стартовый каталог для запущенной программы или файла. По умолчанию - текущий каталог. ShowStyle - задаёт вид окна запущенной программы. Например, свёрнутое или развёрнутое на весь экран. Может быть задан числом или именем константы. Список имён констант и их числовых значений приведён ниже. По умолчанию - SW_SHOWDEFAULT, то есть программа сама выбирает вид главного окна. Значения ShowStyle ------------------ Эти константы определяют как программа покажет своё главное окно. Правда, не все программы обращают внимание на это. Скрыть окно: SW_HIDE 0 Показать не свёрнутым и не развёрнутым на весь экран: SW_SHOWNORMAL 1 Свернуть окно: SW_SHOWMINIMIZED 2 Развернуть на весь экран: SW_SHOWMAXIMIZED 3 Позволить программе самой выбирать вид окна: SW_SHOWDEFAULT 10 А вот эти константы я, пожалуй, не буду комментировать. Но они поддерживаются. SW_NORMAL 1 SW_MAXIMIZE 3 SW_SHOWNOACTIVATE 4 SW_SHOW 5 SW_MINIMIZE 6 SW_SHOWMINNOACTIVE 7 SW_SHOWNA 8 SW_RESTORE 9 SW_FORCEMINIMIZE 11 Следующие константы признаны устаревшими, но всё равно поддерживаются: HIDE_WINDOW 0 SHOW_OPENWINDOW 1 SHOW_ICONWINDOW 2 SHOW_FULLSCREEN 3 SHOW_OPENNOACTIVATE 4 Удаление -------- Удаление производится обычным способом - через Установку и удаление программ. Маленький копирайт ------------------ 1. Программа распространяется бесплатно. 2. Вы имеете право распространять её на тех же условиях. 3. При распространении вы не имеете права менять авторство программы, присваивать его себе или каким-либо иным способом искажать его. 4. Разрешено коммерческое использование программы (в офисе, на производстве) за исключением её платного распространения или сдачи в аренду. 5. Программа распространяется как есть. Автор не несёт ответственности за любые трагедии или несчастные случаи, вызванные использованием программы. 6. Вы имеете право использовать ActiveX компоненты, поставляемые с программой, в собственных программах. При этом автор не гарантирует совместимость будущих версий компонентов. 7. Для любого пункта данного соглашения может быть сделано исключение с разрешения автора программы. 8. По любым вопросам, связанным с данной программой, обращайтесь по адресу lindaoneesama@gmail.com Контакты -------- Почта: lindaoneesama@gmail.com Сайт: https://www.lindachan.net