Page 3 of 3
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 18:34
by Shmuel
Latest post of the previous page:
HaRT wrote: ока даже не представляю, как к нему подступиться.
Очень просто - выбросить condition и добавить её код в сам макрос (посредством if).
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 19:19
by HaRT
Shmuel wrote: выбросить condition и добавить её код в сам макрос (посредством if)
Спасибо, в данном случае это ещё и исправило ошибку в самом повторяемом макросе.
А вот как бы ещё из нашего макроса–повторителя вывести окошко типа “Теперь нажмите кнопкосочетание”, которое бы закрывалось само, когда клавиша нажата? (Ну и хорошо бы иметь возможность отмены мышкой.) С
far.Message
у меня что-то не получается (что и не странно, учитывая модальность выводимой диаложки).
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 19:39
by Shmuel
HaRT wrote: С far.Message у меня что-то не получается
Задавайте параметр Buttons равным
""
.
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 20:08
by HaRT
Shmuel wrote: Задавайте параметр Buttons равным
""
.
Спасибо, теперь вообще отлично!
-- See http://forum.farmanager.com/ viewtopic.php?p=141993#p141993
local breakBy = 'Break' -- press CtrlPause
Macro {
area='Common'; key='CtrlShiftR'; description='Repeat shortcut/macro';
action=function()
local title = 'Repeat shortcut/macro'
local input = far.InputBox(
win.Uuid('EF2ACCC7-AD34-4523-8177-295EC05B3F02'), title, '&Times')
local num = tonumber(input)
if num and num>0 then
far.Message('Press the shortcut now. Cancel by '..breakBy..'.', title, '')
local key = mf.waitkey(0,0)
if key ~= breakBy then
if eval(key,2)==-2 then
for _=1,num do Keys(key) end
else
for _=2,num do eval(key,2) end
end
end
end
end;
}
Перевесил в область
Common
, переназначил на
[b]CtrlShiftR[/b]
.
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 20:44
by Shmuel
for i=1,num do Keys(key); local _ = i; end
- уж очень коряво.
Используйте _ вместо i для подавления варнинга.
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 21:05
by HaRT
Shmuel wrote: Используйте _
вместо i для подавления варнинга.
Спасибо, исправил.
Заодно добавил возможность отмены ввода кнопкосочетания (по умолчанию — CtrlPause).
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 21:34
by iva
мне пришлось поставить скобки в 13 строке
Или это у меня что-то не так работает?
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 22:11
by Shmuel
iva wrote: мне пришлось поставить скобки в 13 строке
Правильно. Там баг.
Можно обойтись и без скобок:
if key ~= breakBy then
.
Как повторить клавиатурный макрос N раз?
Posted: Mon 12 Dec, 2016 22:24
by HaRT
Shmuel wrote:iva wrote: мне пришлось поставить скобки в 13 строке
Правильно. Там баг.
Можно обойтись и без скобок:
if key ~= breakBy then
.
Спасибо, исправил.
Как повторить клавиатурный макрос N раз?
Posted: Tue 13 Dec, 2016 11:17
by alex86m6
HaRT wrote: Shmuel wrote:iva wrote: мне пришлось поставить скобки в 13 строке
Правильно. Там баг.
Можно обойтись и без скобок:
if key ~= breakBy then
.
Спасибо, исправил.
Поместите +/- окончательный вариант
Заказчик-то я, если вспомните
Как повторить клавиатурный макрос N раз?
Posted: Tue 13 Dec, 2016 12:33
by HaRT
Как повторить клавиатурный макрос N раз?
Posted: Fri 16 Dec, 2016 11:53
by alex86m6
Всем - Большое Спасибо за помщь.