Дополнения к FAQ

Russian main discussion
  • Author
  • Message
Offline
Posts: 46
Joined: Fri Mar 22, 2013 5:05 am
Location: Белово, Кемеровская область, Россия

Post by Egorkaru »

Вопрос:
Как выполнить файл по его системной ассоциации?

Ответ:
Создайте пункт меню в ContextMenu плагине (259 Кб), кнопку в ToolBar плагине (346 Кб) и (или) горячую клавишу в Hotkeys плагине (181 Кб).

Для ContextMenu и ToolBar плагинов:

Code: Select all

"Тест" Exec(`C:\Windows\system32\rundll32.exe shell32.dll, ShellExec_RunDLL "%f"`) Icon(17)
Для Hotkeys плагина:

Имя: Тест
Команда: Exec(`C:\Windows\system32\rundll32.exe shell32.dll, ShellExec_RunDLL "%f"`)

Либо в AkelPad'е выберите последовательно пункты Настройки -> Параметры..., переведите каретку в поле Команда (%f файл, %a директория akelpad) группы Выполнить, введите команду C:\Windows\system32\rundll32.exe shell32.dll, ShellExec_RunDLL "%f" и нажмите кнопку ОК.
Last edited by Egorkaru on Sat Oct 18, 2014 9:50 am, edited 4 times in total.

Offline
Posts: 46
Joined: Fri Mar 22, 2013 5:05 am
Location: Белово, Кемеровская область, Россия

Post by Egorkaru »

Вопрос:
При установке AkelPad'а выбираю Заменить блокнот, но по завершении установки блокнот не заменяется. Что делать?

Ответ:
1. Убедитесь, что в CD-ROM не вставлен установочный диск Windows. Если присутствуют установочные ISO-образы Windows, убедитесь, что ни один них не смонтирован в виртуальный привод. Если установка Windows производилась не с CD-ROM'а, убедитесь, что путь указанный в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup, не содержит файлов установки Windows (обычно в подкаталоге i386).
2. Установите программу, как замену блокноту.
3. При появлении диалогового окна Защита файлов Windows нажмите Отмена в нём.
4. На вопрос Вы действительно хотите сохранить эти нераспознанные версии файлов? ответьте Да.

При сложностях с заменой стандартного блокнота на операционных системах, начиная с Windows Vista, см. здесь.

Альтернативная замена блокнота (требуется AkelPad 4.6.1 или выше):
1. Установите AkelPad стандартным способом, например в Program Files.
2. Создайте два пакетных файла в каталоге с AkelPad.exe:

NotepadImage.cmd - назначение: заменить запись в реестре для запуска AkelPad'а вместо стандартного блокнота:

Code: Select all

@reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /t REG_SZ /d "\"%~dp0AkelPad.exe\" /z" /f
NotepadRestore.cmd - назначение: убрать запись в реестре, тем самым, восстановив запуск стандартного блокнота:

Code: Select all

@reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f
Или вместо пакетных файлов создайте два пункта меню в ContextMenu плагине (259 Кб), две кнопки в ToolBar плагине (346 Кб) и (или) две горячие клавиши в Hotkeys плагине (181 Кб).

Для ContextMenu и ToolBar плагинов:

Code: Select all

"Notepad -> AkelPad" Exec(`reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /t REG_SZ /d ""%a\AkelPad.exe" /z" /f`)

Code: Select all

"AkelPad -> Notepad" Exec(`reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f`)
Для Hotkeys плагина:

Имя: Notepad -> AkelPad
Команда: Exec(`reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /t REG_SZ /d ""%a\AkelPad.exe" /z" /f`)

Имя: AkelPad -> Notepad
Команда: Exec(`reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f`)
Last edited by Egorkaru on Sat Oct 18, 2014 9:56 am, edited 4 times in total.

Offline
Posts: 46
Joined: Fri Mar 22, 2013 5:05 am
Location: Белово, Кемеровская область, Россия

Post by Egorkaru »

Вопрос:
Куда делось меню Кодировки, которое присутствует в классическом AkelPad'е?

Ответ:
Можно его воссоздать, используя ContextMenu плагин (259 Кб):
1. Вызовите ContextMenu::Main.
1.1. Откройте диалог Настройки -> Плагины... или нажмите сочетание клавиш Alt+P.
1.2. Выделите ContextMenu::Main из списка и нажмите Вызвать.
2. В выпадающем списке выберите вместо Меню ContextMenu::Show - Главное меню.
3. Поставьте галочку Включено, если её нет.
4. Измените меню:

Code: Select all

"&Кодировки" Index(4)
{
  "Открыть как Windows-1251	Alt+W" Command(4122)
  "Открыть как DOS-866	Alt+D" Command(4123)
  "Открыть как КОИ8-Р	Alt+K" Command(4124)
  "Открыть как Unicode" 
   { 
     "UCS-2 little endian (стандартная)	Alt+L" Command(4125) 
     "UCS-2 big endian	Alt+B" Command(4126) 
     "UTF-8	Alt+U" Command(4127) 
   }
  SEPARATOR
  "&Открыть как" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 36)
  {
    OPENCODEPAGES
  }
  SEPARATOR
  "Сохранить как Windows-1251	Shift+Alt+W" Command(4131)
  "Сохранить как DOS-866	Shift+Alt+D" Command(4132)
  "Сохранить как КОИ8-Р	Shift+Alt+K" Command(4133)
  "Сохранить как Unicode" 
   { 
     "UCS-2 little endian (стандартная)	Shift+Alt+L" Command(4134) 
     "UCS-2 big endian	Shift+Alt+B" Command(4135) 
     "UTF-8	Shift+Alt+U" Command(4136) 
     "UTF-8 без BOM" Command(4137) 
   }
  SEPARATOR
  "&Сохранить как" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 5)
  {
    SAVECODEPAGES
  }
  SEPARATOR
  "Определить кодировку	Alt+F5" Command(4121)
}
5. Нажмите ОК.
Примечание: форум автоматически заменяет символы табуляции пробелами. Чтобы горячие клавиши равноудалённо располагались от названий пунктов, замените пробелы между ними Tab'ами. Например:

Code: Select all

Определить кодировку{TAB}Alt+F5
Last edited by Egorkaru on Mon Apr 08, 2013 1:55 pm, edited 1 time in total.

Offline
Posts: 46
Joined: Fri Mar 22, 2013 5:05 am
Location: Белово, Кемеровская область, Россия

Post by Egorkaru »

Вопрос:
Почему, когда я ставлю галочку напротив функции плагина, выдаётся следующее сообщение?
На примере функции Coder::Settings:
Image

Ответ:
Галочка, напротив функций плагинов, означает их автозагрузку. Но не все функции поддерживают автозагрузку (автоматический запуск при старте программы), а должны запускаться разово (с помощью кнопки Вызвать или горячей клавиши). Так, Format::LineSortStrAsc запускается разово для каждого случая, когда необходимо отсортировать строки по возрастанию.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Re: Дополнения к FAQ

Post by yozhic »

Вопрос:
Что такое SDI, MDI и PMDI и чем они отличаются?

Ответ:
Об оконных режимах на пальцах

При открытии любого окна, Windows выделяет на него немножко ресурсов у себя в ядре (ресурсы под условным названием «набор юного художника», в который входят: кисть, карандаш, палитра, шрифт, трафарет) и немножко памяти «поближе к видео памяти» (холст художника).

В SDI режиме это делается один раз — для одного документа.

В MDI режиме это делается столько раз, сколько открыто документов (пропорционально), и не важно видно ли при этом окно или нет. (А что случается с Windows когда у него нет места для этих ресурсов?..)

В PMDI режиме это делается ровно столько раз, сколько нужно для того, чтобы отобразить открытые документы, не более. И если вдруг уже не нужно столько — ресурсы будут освобождены. В большинстве случаев ровно столько же сколько и в SDI. Если вы не заметили, в PMDI режиме у вас нет кнопок свернуть/закрыть/развернуть вкладку (правый верхний узел), хоть сами вкладки есть. А это значит что вы никогда не увидите двух документов одновременно, а это в свою очередь значит, что не будет создано два окна одновременно, т.е. AkelPad будет потреблять меньше памяти. Потому то он и псевдо-много-документный — у вас в окне программы открыто как будто бы много документов, но единовременно вы можете видеть только один.

Источник: ответ FeyFre

Дополнительно:
SDI = Single Document Interface = Однодокументный интерфейс. Литература: Википедия.
MDI = Multiple-Document Interface = Многодокументный интерфейс. Литература: Википедия (приводятся отличия от SDI), Wikipedia.
PMDI = Pseudo Multiple-Document Interface = Псевдо-многодокументный интерфейс. Литература: Википедия: Оконный интерфейс (статья с описанием типов оконных интерфейсов и их отличий).
Post Reply