MacroLib — Far Macro Library

Здесь можно обсудить ваш любимый плагин.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

Latest post of the previous page:

На одну комбинацию можно повесить 2 макроса Hold и Release. Третий - уже непонятно. Теоретечески, можно использовать комбинацию из 3-х: Down/Hold/Relese, но при этом всегда будут срабатывать пары макросов Down-Release или Down-Hold, практическое применение этому довольно ограничено.

Single - это не Double. Применяется для нажатий мыши, чтобы не конфликтовали макросы на одинарное и двойное нажатие
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

Max Rusov wrote: Теоретечески, можно использовать комбинацию из 3-х: Down/Hold/Relese,
Я так понял что в качестве основной заявляется проблема несочетаемости Press/Hold/Double.
Max Rusov wrote: Single - это не Double. Применяется для нажатий мыши
Документацию пора обновить, всё уже и так слишком сложно.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

John Doe wrote: Я так понял что в качестве основной заявляется проблема несочетаемости Press/Hold/Double.
Видимо сказывается разница в подходах: в MacroEx "Press" автоматически сработает при отпускании клавиши, если не выполнены условия Hold/Double.
А в MacroLib надо явно задать для данного случая Release.
Single - это не Double. Применяется для нажатий мыши
А почему тогда модификатор не игнорируется для клавиш клавиатуры?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

MacroLib — Far Macro Library

Post by sToLp »

John Doe wrote:какую цель вы преследуете назначая макросы одновременно на Single, Press и Down?
В данном случае пока ни какой практической. Просто изучаю взаимодействие каждого из модификаторов.
Max Rusov wrote:Single - это не Double. Применяется для нажатий мыши, чтобы не конфликтовали макросы на одинарное и двойное нажатие
Благодарю за разъяснение! Очень полезно!
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

Ну, правила обработки модификаторов в MacroLib устаканились довольно давно, и я в новой версии ничего не менял - просто распространил их на нативные макросы. Я готов что-то обсудить, но радикально менять - вряд ли буду.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

John Doe wrote: А почему тогда модификатор не игнорируется для клавиш клавиатуры?
Для клавиатуры он тоже имеет смысл. Он ведет себя как обычное нажатие, кроме случая когда определился Double.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

MacroLib — Far Macro Library

Post by sToLp »

Макрос с модификатором Up трудно отловить.

Во-первых, пока что у меня получается это лишь тогда, когда кроме макроса с Up установлен только макрос с Down. И то ловится не чаще одного раза с пяти попыток. А если установлены макросы и с другими модификаторами кроме Up и Down, то вообще не удаётся поймать.

Существует ли возможность как то поднастраивать модификатор Up?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

Max Rusov wrote: Я готов что-то обсудить, но радикально менять - вряд ли буду.
Например если обнаружены одновременно Press and Hold, то Press можно понимать как Release.
Max Rusov wrote: Для клавиатуры он [Single] тоже имеет смысл. Он ведет себя как обычное нажатие, кроме случая когда определился Double.
Зачем для этого отдельный модификатор? Это поведение вполне интуитивно если одновременно обнаружены Press и Double.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

sToLp wrote: Макрос с модификатором Up трудно отловить.
Вы бы описали решаемую задачу, вместо того чтобы мучить зверушку. Оно заточено под конкретные сценарии использования, а не для исследований клавиатурных нажатий.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

John Doe wrote: Например если обнаружены одновременно Press and Hold, то Press можно понимать как Release.
Что значит "обнаружены одновременно"? Если 2 макроса повешены на одну кнопку, это еще не значит что они конфликтуют, у них могут быть разные условия срабатывания: области, condition etc... Наличие конфликта можно определить только в момент вызова, а Press и Hold срабатывают не одновременно. В момент нажатия Press еще неизвестно, будет ли Hold...
John Doe wrote: Зачем для этого отдельный модификатор? Это поведение вполне интуитивно если одновременно обнаружены Press и Double.
Возможно, но сделано - иначе
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

Max Rusov wrote: а Press и Hold срабатывают не одновременно
Однако условие для Release вы ведь тоже вычисляете не при отпускании (если я правильно понял http://forum.farmanager.com/viewtopic.p ... 26#p128126)
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

P.S.
И для Hold разве условие не сразу вычисляется?
(Если нет, и в системе установлен короткий интервал для автоповтора, то Hold не сработает)
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

Вот Вы вопросы задаете, я даже в код полез смотреть :) С condition для Relese не очень удачно получилось. Оно вызывается при отпускании, так что нажатие будет "съедено", даже если condition вернет False. Condition я только добавил, поэтому могут быть недоработки. Надо подумать.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

MacroLib — Far Macro Library

Post by sToLp »

Max Rusov wrote: Оно [Up] заточено под конкретные сценарии использования
Благодарю Вас за вполне понятный ответ! И Вы, безусловно, правы — опыт потом покажет как можно будет использовать Up (и другие модификаторы).
При этом лично мне как то удобнее сначала попытаться умозрительно понять взаимодействие модификаторов.
И поэтому с удовольствием ознакомился бы с рекомендуемыми (или предпочитаемыми) Вами сценариям использования каждого из модификаторов и их возможных сочетаний.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

MacroLib — Far Macro Library

Post by John Doe »

Max Rusov wrote: С condition для Relese не очень удачно получилось.
Я считаю нормальным наличие некоторых ограничений, особенно если они документированы.
sToLp wrote: с удовольствием ознакомился бы с рекомендуемыми (или предпочитаемыми) Вами сценариям использования
Так перечитайте последние 3 страницы.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

MacroLib — Far Macro Library

Post by Max Rusov »

sToLp wrote: И поэтому с удовольствием ознакомился бы с рекомендуемыми (или предпочитаемыми) Вами сценариям использования каждого из модификаторов и их возможных сочетаний.
На практике я обычно использую комбинации Hold/Release и Single/Double. Модификаторы Up/Down - вспомогательные, используются для сложных "аккордных" макросов типа Shell_Bokmark, Shell_FastFilter
Post Reply

Return to “Обсуждение плагинов”