Назначить UID макросу или перезагрузить определённый макрос

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

Назначить UID макросу или перезагрузить определённый макрос

Post by LanKing »

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

У меня присутствуют 2 макроса:
BufferScroll и ConsoleControl

В BufferScroll присутствует строка, проверяющая наличие большого объёма консоли, в случае, если таковой консоли нет, скрипт завершается:
if win.GetConsoleScreenBufferInfo().WindowTop==0 then return end

После запуска фара: far /w большого объёма консоли нет, соответственно, макрос bufferscroll не загружается.
После нажатия хоткея: CtrlAltF9 (ф-ция ConsoleControl) - получаем большой буфер консоли. Но макрос bufferscroll уже некативен.
Получается, нужно в ф-цию consoleControl добавить строчку, перезапускающую макрос bufferscroll

Насколько я понял, конкретный макрос можно перезагрузить по uid, примерно так: Plugin.Command(LuaMacroGuid, "load")
Но не вкурил, а как для Bufferscroll (для всего скрипта а не конкретной его ф-ции) назначить uid

Спасибо вам за ответ!
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Назначить UID макросу или перезагрузить определённый макрос

Post by Shmuel »

LanKing wrote: В BufferScroll присутствует строка, проверяющая наличие большого объёма консоли, в случае, если таковой консоли нет, скрипт завершается:
if win.GetConsoleScreenBufferInfo().WindowTop==0 then return end
Не делайте так. Для этого есть функция condition в спецификации макроса.
LanKing wrote: Насколько я понял, конкретный макрос можно перезагрузить по uid, примерно так: Plugin.Command(LuaMacroGuid, "load")
И где в документации такое написано?
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Назначить UID макросу или перезагрузить определённый макрос

Post by John Doe »

LanKing wrote: Но не вкурил, а как для Bufferscroll (для всего скрипта а не конкретной его ф-ции) назначить uid
Вместо этого можно перегрузить все макросы.
LanKing wrote: После запуска фара: far /w большого объёма консоли нет, соответственно, макрос bufferscroll не загружается.
Ту строчку можно просто убрать.
А если пользуетесь фаром в режиме /w, то удобно установить большой размер буфера раз и навсегда.
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

Назначить UID макросу или перезагрузить определённый макрос

Post by LanKing »

Спасибо большое! Тогда можно не перезагружать макросы
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

Назначить UID макросу или перезагрузить определённый макрос

Post by LanKing »

Подскажите плз, как включить большой буфер постоянно.
window.mode сделал, хочется при загрузке отводить буфер

Понимаю, что нужно сделать
ConsoleControl.BufferSize(0, 1000);
Keys("CtrlY c l s Enter")

Но куда вставить код, чтобы он выполнился после инициализации ConsoleControl?

P.S. Только не понял, что такое ctrlY тут)
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Назначить UID макросу или перезагрузить определённый макрос

Post by John Doe »

оффтопик
Post Reply

Return to “Нужна помощь”