struct ActlKeyMacro {
int Command;
union{
struct {
char *SequenceText;
DWORD Flags;
} PlainText;
DWORD Reserved[3];
} Param;
};
| Команда | Описание | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCMD_LOADALL | Считать из реестра в память FAR все макросы с затиранием предыдущих значений. | ||||||||||||
| MCMD_POSTMACROSTRING | Передать в FAR макрос в текстовом виде (в том виде, как их хранит FAR Manager в реестре). Функция AdvControl возвращает TRUE - макрос проанализирован и помещены в очередь, и FALSE - ошибка (макропоследовательность содержит ошибки). Макропоследовательность начнет исполняться тогда, когда FAR получит управление. | ||||||||||||
| MCMD_SAVEALL | Принудительное сохранение макросов из памяти FAR в реестр. | ||||||||||||
| MCMD_GETSTATE | Получить статус работы макродвижка. Возвращает одно из значений (перечисление FARMACROSTATE):
|
| Флаг | Описание |
|---|---|
| KSFLAGS_DISABLEOUTPUT | Не отображать на экране результат работы каждой клавиши. |
| KSFLAGS_NOSENDKEYSTOPLUGINS | Не передавать клавиши редакторным плагинам (плагинам, экспортирующим функцию ProcessEditorInput). |
| KSFLAGS_REG_MULTI_SZ | Параметр Param.PlainText.SequenceText представлен в формате REG_MULTI_SZ. REG_MULTI_SZ в реестре: строка 1\x00 строка 2\x00 ... строка N\x00 \x00 |
command.Command=MCMD_POSTMACROSTRING;
command.Param.PlainText.SequenceText=(char *)malloc(strlen(pCmd)+1);
if(command.Param.PlainText.SequenceText)
{
command.Param.PlainText.Flags=KSFLAGS_DISABLEOUTPUT;
strcpy(command.Param.PlainText.SequenceText,pCmd);
Info.AdvControl(Info.ModuleNumber,ACTL_KEYMACRO,&command);
free(command.Param.PlainText.SequenceText);
}
Использование MCMD_LOADALL в плагине FARCmds:
command.Command=MCMD_LOADALL; Info.AdvControl(Info.ModuleNumber,ACTL_KEYMACRO,&command);Использование MCMD_SAVEALL в плагине FARCmds:
command.Command=MCMD_SAVEALL; Info.AdvControl(Info.ModuleNumber,ACTL_KEYMACRO,&command);