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

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

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

Post by LanKing » Thu 26 Feb, 2015 19:10

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

У меня присутствуют 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: 5932
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 24 times
Been thanked: 238 times

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

Post by Shmuel » Thu 26 Feb, 2015 19:21

LanKing wrote: В BufferScroll присутствует строка, проверяющая наличие большого объёма консоли, в случае, если таковой консоли нет, скрипт завершается:
if win.GetConsoleScreenBufferInfo().WindowTop==0 then return end
Не делайте так. Для этого есть функция condition в спецификации макроса.
LanKing wrote: Насколько я понял, конкретный макрос можно перезагрузить по uid, примерно так: Plugin.Command(LuaMacroGuid, "load")
И где в документации такое написано?

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 240 times

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

Post by John Doe » Thu 26 Feb, 2015 20:47

LanKing wrote: Но не вкурил, а как для Bufferscroll (для всего скрипта а не конкретной его ф-ции) назначить uid
Вместо этого можно перегрузить все макросы.
LanKing wrote: После запуска фара: far /w большого объёма консоли нет, соответственно, макрос bufferscroll не загружается.
Ту строчку можно просто убрать.
А если пользуетесь фаром в режиме /w, то удобно установить большой размер буфера раз и навсегда.

User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39

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

Post by LanKing » Thu 26 Feb, 2015 23:41

Спасибо большое! Тогда можно не перезагружать макросы

User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39

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

Post by LanKing » Sat 28 Feb, 2015 11:41

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

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

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

P.S. Только не понял, что такое ctrlY тут)

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 240 times

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

Post by John Doe » Sat 28 Feb, 2015 11:42

оффтопик

Post Reply

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