Вы ищете легкое, сверхбыстрое и легкодоступное решение для создания заметок? Поищите в Интернете, и вы найдете бесчисленное количество предложений таких приложений. И все же, даже самые «легкие» из них часто неуклюжи и могут иметь функции, которые вы лично считаете бесполезными.

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

Настройка плана создания заметок с помощью AutoHotkey

Давайте начнем с четкой формулировки нашей конечной цели и разработки простого плана ее достижения.

Для этого проекта нам не нужно какое-либо причудливое форматирование текста, поддержка шаблонов или другие «продвинутые» функции. Наша цель?

  • Мы хотим создать сверхпростое приложение, которое будет появляться на нашем экране, когда мы нажимаем комбинацию горячих клавиш.
  • Это окно позволит нам записать заметку и сохранить ее в виде простого текста/файла MarkDown.
instagram viewer

И все — никаких лишних окон, диалогов, меню и кнопок.

К счастью, такой проект легко создать с помощью AutoHotkey, как мы увидим дальше. Не стесняйтесь следовать, даже если вы раньше не использовали AutoHotkey. Тем не менее, было бы лучше, если бы вы сначала проверили наш краткое руководство по AutoHotkey для начинающих.

Как установить AutoHotkey

Поскольку AutoHotkey является сторонним решением, для его использования необходимо его установить.

Итак, посетите Официальный сайт AutoHotkey, и нажмите на дружелюбный зеленый Скачать кнопка. Пропустите версии V1 (устаревшая) и V2 (бета-версия) и выберите Скачать текущую версию. Затем установите его на свой компьютер.

После этого вы не сможете заметить никаких изменений, поскольку AutoHotkey работает только как парсер для скриптов AutoHotkey. Другими словами, AutoHotkey ничего не делает сам по себе. Вместо этого он работает как платформа, на которой будет работать сценарий, который мы создадим далее.

Как создать новый скрипт в AutoHotkey

Откройте свой любимый файловый менеджер, например Проводник Windowsи укажите каталог, в котором вы хотите создать новый скрипт. Вы можете выбрать любой каталог с рабочего стола в личную папку «Документы».

Самый простой способ создать новый скрипт AutoHotkey — воспользоваться новой опцией, доступной через контекстное меню правой кнопки мыши после установки AutoHotkey. Щелкните правой кнопкой мыши на пустом месте окна файлового менеджера и в появившемся меню выберите Новый > Скрипт автогорячих клавиш.

Поскольку сценарии AutoHotkey на самом деле представляют собой простые текстовые файлы, вы также можете создать новый текстовый файл, а затем переименовать его, изменив его расширение с ТЕКСТ к АХК. Конечный результат будет таким же: у вас будет новый пустой скрипт AutoHotkey.

Запустите свой любимый текстовый редактор или редактор кода и откройте там сценарий, чтобы отредактировать его. В этой статье мы будем использовать Notepad++, но вы можете использовать любой аналогичный инструмент, например VS Code или Atom.

Конечно, если вы предпочитаете простоту, вы всегда можете использовать старый добрый Блокнот, поставляемый вместе с Windows.

Создание графического интерфейса в AutoHotkey

Чтобы упростить дальнейшую настройку нашего скрипта, давайте сохраним две важные части информации в двух переменных.

  • Первый, который мы назвали NotesPath, сопоставляется с полным путем, по которому мы хотим, чтобы наш скрипт сохранял наши заметки. Пожалуйста, не забудьте изменить путь на тот, который вы хотите использовать. В противном случае ваши заметки будут сохранены в неожиданном месте или скрипт не сработает.
  • Второй, который мы назвали FileNameExtra, содержит строку, которую мы будем использовать для имен файлов наших заметок. Файл каждой заметки будет называться в соответствии с «очищенной» версией его заголовка, за которым следует эта строка.

Это должно выглядеть так:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Входящие
FileNameExtra = _MUOnote.md

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

Однако в этом сценарии мы будем во многом полагаться на возможности создания графического интерфейса AutoHotkey, о которых многие забывают. AutoHotkey «подключается» к собственному «набору оконных инструментов» Windows. Это позволяет создавать графические интерфейсы со всеми обычными элементами, которые вы ожидаете найти в «стандартном» окне ОС, от текстовых полей и раскрывающихся меню до кнопок и полос прокрутки.

К счастью, поскольку мы делаем простое и «облегченное» приложение для создания заметок, проект не будет сложным и, следовательно, его относительно легко реализовать. Наш GUI будет состоять всего из трех элементов:

  1. Одно текстовое поле для заголовка заметки
  2. Еще один для содержания заметки
  3. Кнопка для сохранения заметки.

Мы даже не будем добавлять кнопку «Отмена», так как мы сопоставим эту функцию с клавишей Escape на клавиатуре и действием по закрытию окна.

Добавьте приведенную ниже строку в свой скрипт — она в основном «сообщает» AutoHotkey, что шрифт в любом последующем элементе должен быть «размер 14» и «цвет 666666».

Гуй, QN:Шрифт, с14c666666

Далее следующая строка:

Гуй, QN:Добавлять, Редактировать, х5у5w550h60vTitle, Заголовок-Имя файла
  1. ...добавляет редактируемое текстовое поле ("Редактировать")...
  2. ...в координатах 5 пикселей по горизонтали и 5 пикселей по вертикали от края окна ("x5 y5")...
  3. ...шириной 550 пикселей и высотой 60 пикселей ("w550 h60").
  4. Все введенное в него будет сопоставлено с переменной Title ("vTitle")...
  5. ... и он будет содержать текст "Заголовок - Имя файла".

Далее давайте изменим размер шрифта на 12 и его цвет на 4444444 для любых элементов, следующих после этой строки.

Затем добавьте редактируемое текстовое поле большего размера для фактического содержимого заметки, сопоставьте его с переменной Note и предварительно заполните его тем, что уже находится в буфере обмена.

Наконец, добавьте кнопку под двумя текстовыми полями и в нижней части окна приложения, сопоставленную с функцией OK сценария по умолчанию.

Гуй, QN:Шрифт, с12c444444
Гуй, QN:Добавлять, Редактировать, х5у70w550h600vПримечание, %буфер обмена%
Гуй, QN:Добавлять, Кнопка, х5у680w550h50, ХОРОШО

Мы создали графический интерфейс, но нам также нужно окно для его отображения.

Для этого следующая строка «говорит» AutoHotkey создать окно с координатами 0, 0 (по горизонтали, вертикали), шириной 560 пикселей и высотой 735 пикселей, с именем «MUONotes».

Гуй, QN:Показывать, х0у0w560h735, MUONNotes

Полный сценарий до сих пор должен выглядеть примерно так:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Входящие
FileNameExtra = _MUOnote.md Gui, QN: Шрифт, s14 c666666
Гуй, QN:Добавлять, Редактировать, х5у5w550h60vTitle, Заголовок-Имя файла
Гуй, QN:Шрифт, с12c444444
Гуй, QN:Добавлять, Редактировать, х5у70w550h600vПримечание, %буфер обмена%
Гуй, QN:Добавлять, Кнопка, х5у680w550h50, ХОРОШО
Гуй, QN:Показывать, х0у0w560h735, MUONNotes

Заставить кнопки что-то делать в AutoHotkey

Наш графический интерфейс готов — вы можете проверить его, дважды щелкнув скрипт.

Как вы увидите, область основной заметки будет предварительно заполнена содержимым буфера обмена. Однако само приложение будет бесполезным, потому что мы еще не добавили поддержку сохранения чего-либо.

Исправьте это, добавив в скрипт следующее:

QNКнопкаОК:
Кодировка файла, UTF-8-RAW
Гуй, QN:Представлять на рассмотрение
TempClipboard = %Буфер обмена%
Буфер обмена = %Заголовок%
gosub CleanText
ИмяФайла = %Клипборд%
Буфер обмена = %TempClipboard%
FinalFilename = %NotesPath%\%FileName%%FileNameExtra%
FileDelete, %FinalFileName%
FileAppend, %Примечание%, %FinalFileName%
возвращаться

Давайте разберем это:

  1. «QNButtonOK:» указывает, что после этого следует то, что AutoHotkey «должен делать» при нажатии кнопки «ОК» по умолчанию в графическом интерфейсе.
  2. Строка FileEncoding задает кодировку создаваемого текстового файла.
  3. «Gui, GN: Submit» захватывает статус каждого элемента GUI, что означает, что он также «захватывает» все, что введено в двух текстовых полях.
  4. Затем мы временно копируем фактическое содержимое буфера обмена в переменную TempClipboard.
  5. Мы делаем это, потому что хотим скопировать заголовок заметки в буфер обмена, который используется в качестве посредника для отправки его в функцию, которую мы добавим далее. Эта функция «очищает» текст, удаляя небуквенно-цифровые символы и позволяя нам использовать текст заголовка в качестве имени файла.
  6. Функция очистки вернет «чистый» заголовок в буфер обмена, откуда мы сопоставим его с переменной FileName.
  7. Затем мы возвращаем исходное содержимое в буфер обмена из переменной TempClipboard.
  8. Чтобы получить полный путь и имя целевого файла, мы помещаем только что собранную переменную FileName между переменными NotesPath и FileNameExtra. Вот почему мы определили их в начале скрипта.
  9. Мы превентивно удаляем любой предыдущий файл с тем же путем и именем файла.
  10. Мы добавляем содержимое переменной Note в файл FinalFileName.

Очистка текста в AutoHotkey

Функция «дезинфекции», о которой мы упоминали выше, заключается в следующем:

CleanText: CleanMePlease = %ClipBoard%
CleanMePlease := Regexreplace (CleanMePlease, "a-zA-Z0-9", "")
петля
{
StringReplace, CleanMePlease, CleanMePlease, %A_SPACE%%A_SPACE%, %A_SPACE%, все
если уровень ошибки <> 0
перерыв
}
Буфер обмена = %CleanMePlease%
Возвращаться

Чтобы пройти его построчно:

  1. «CleanText:» — это имя функции, которая «содержит» последующие действия.
  2. Сначала мы сопоставляем содержимое буфера обмена с переменной CleanMePlease.
  3. Мы используем правило RegEx для удаления всех символов, отличных от буквенно-цифровых, из переменной CleanMePlease.
  4. Поскольку приведенное выше может привести к появлению двойных пробелов, мы используем цикл, чтобы еще раз прочесать переменную CleanMePlease, заменив ее одинарными пробелами. Это бит с двумя «%A_SPACE%», за которыми следует один и слово «все».
  5. Строка ErrorLevel «говорит» AutoHotkey «разорвать цикл», когда он не может найти больше двойных пробелов в тексте.
  6. Наконец, мы возвращаем «очищенную» версию переменной CleanMePlease в буфер обмена.

Внесение последних изменений в приложение для создания заметок

Ваш скрипт создания заметок готов к использованию, но если вы попробуете его, вы можете увидеть всплывающее окно и мгновенно исчезнуть. Это потому, что вам также нужно «вернуть» каждую функцию, которую вы в ней определили.

Итак, поместите слово «возврат» (без кавычек) под:

  1. Часть сценария, создающая графический интерфейс, в графическом интерфейсе, строка "QN: Show...".
  2. Функция "QNButtonOK" в последней строке "FileAppend...".
  3. Функция CleanText под последней строкой "ClipBoard =...".

Однако, если вы попробуете запустить свой скрипт сейчас, вы увидите, что он все еще задерживается в панели задач Windows после его использования. Чтобы приложение закрылось, а скрипт полностью закрылся, добавьте в самый конец следующее:

QNGuiEscape:
QNGuiClose:
Выход из приложения
возвращаться

Наконец, чтобы приложение запускалось мгновенно, когда вам это нужно, создайте ярлык для своего скрипта на рабочем столе. Затем щелкните его правой кнопкой мыши, выберите Характеристики, щелкните в Быстрая клавиша поле и нажмите нужную комбинацию кнопок.

Поздравляем с созданием вашего первого приложения в AutoHotkey

Сначала это могло показаться сложным проектом, но, как мы видели, создать «облегченное» приложение для создания заметок было довольно просто.

Все благодаря удобному для человека синтаксису AutoHotkey и способности использовать элементы графического интерфейса Windows по умолчанию.