MacroControl

Programming Far Manager plugins

MacroControl

Функция MacroControl позволяет управлять макрокомандами Far Manager.
intptr_t WINAPI MacroControl(
  const GUID *PluginId,
  enum FAR_MACRO_CONTROL_COMMANDS Command,
  intptr_t Param1,
  void *Param2
);

Параметры

PluginId
Указатель на GUID плагина (для вашего плагина, GUID должен быть таким же, что и в поле GlobalInfo.Guid функции GetGlobalInfoW).
Command
Может быть одним из следующих значений (перечисление FAR_MACRO_CONTROL_COMMANDS):
КомандаОписание
MCTL_LOADALL Загрузить все макросы из файлов в память Far Manager.
Предыдущие значения макросов при этом выгружаются, за исключением макросов, добавленных с помощью команды MCTL_ADDMACRO.
Param1 не используется.
Param2 указывает на структуру FarMacroLoad. Для загрузки с параметрами по умолчанию установите в NULL.
Функция при неудаче вернёт FALSE.
MCTL_SAVEALL Сохранить клавиатурные макросы из памяти Far Manager в файлы.
Если пользователь записал с клавиатуры новые макросы, изменил либо удалил существующие, то данные изменения станут постоянными.
Param1 не используется.
Param2 не используется.
Функция при неудаче вернёт FALSE.
MCTL_SENDSTRING Выполнить или проверить макрос.
Param1 значение типа FARMACROSENDSTRINGCOMMAND:
КомандаОписание
MSSC_POST Выполнить макрос.
Param2 указывает на структуру MacroSendMacroText. Функция возвращает TRUE - макрос проанализирован и помещен в очередь, и FALSE - ошибка (макропоследовательность содержит ошибки). Макропоследовательность начнёт исполняться тогда, когда Far Manager получит управление.
MSSC_CHECK Проверить макрос.
Param2 указывает на структуру MacroSendMacroText. Функция при неудаче вернёт FALSE.
MCTL_EXECSTRING Исполнить скрипт (строку или файл).
Param1 не используется.
Param2 указывает на структуру MacroExecuteString.
Функция при неудаче вернёт FALSE.
MCTL_GETLASTERROR Получить расширенную диагностику об ошибке проверки макроса или скрипта (после исполнения команды MCTL_SENDSTRING или MCTL_EXECSTRING).
Param1 размер буфера. Указывает максимальное количество байт, которые могут быть записаны в Param2.
Param2 указатель на буфер, структуру MacroParseResult, память плагин выделяет самостоятельно.
Функция возвращает размер требуемого буфера, при Param2 = NULL.
MCTL_GETSTATE Получить статус работы макродвижка.
Param1 не используется.
Param2 не используется.
Функция возвращает одно из значений (перечисление FARMACROSTATE):
ЗначениеОписание
MACROSTATE_NOMACRO макродвижок не выполняет никакой макрос в текущий момент
MACROSTATE_EXECUTING идёт исполнение макроса без передачи кодов клавиш в плагин
MACROSTATE_EXECUTING_COMMON идёт исполнение макроса; коды клавиш в плагин передаются
MACROSTATE_RECORDING идёт запись макроса без передачи кодов клавиш в плагин
MACROSTATE_RECORDING_COMMON идёт запись макроса; коды клавиш в плагин передаются
MCTL_GETAREA Получить текущую макрообласть.
Param1 не используется.
Param2 не используется.
Функция возвращает значение типа FARMACROAREA:
ЗначениеОписание
MACROAREA_OTHER режим копирования текста с экрана
MACROAREA_SHELL файловые панели
MACROAREA_VIEWER внутренняя программа просмотра
MACROAREA_EDITOR редактор
MACROAREA_DIALOG диалоги
MACROAREA_SEARCH быстрый поиск в панелях
MACROAREA_DISKS меню выбора дисков
MACROAREA_MAINMENU основное меню
MACROAREA_MENU прочие меню
MACROAREA_HELP система помощи
MACROAREA_INFOPANEL информационная панель
MACROAREA_QVIEWPANEL панель быстрого просмотра
MACROAREA_TREEPANEL панель дерева папок
MACROAREA_FINDFOLDER панель поиска папок
MACROAREA_USERMENU пользовательское меню
MACROAREA_SHELLAUTOCOMPLETION список автодополнения в панелях
MACROAREA_DIALOGAUTOCOMPLETION список автодополнения в диалогах
MACROAREA_COMMON общая область
MCTL_ADDMACRO Добавить в память Far Manager макрос.
Param1 игнорируется.
Param2 указывает на структуру MacroAddMacro.
Функция при неудаче вернёт FALSE.
MCTL_DELMACRO Удалить из памяти Far Manager макрос, добавленный ранее командой MCTL_ADDMACRO.
Param1 игнорируется.
Param2 указывает на идентификатор удаляемого макроса, поле Id структуры MacroAddMacro.
Функция при неудаче вернёт FALSE.
Param1
Указывает на Параметр1 команды. Смотрите описание Command.
Param2
Указывает на Параметр2 команды. Смотрите описание Command.

Возвращаемое значение

Смотрите описание Command.

Пример


Смотрите также: