Page 65 of 66

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 09:46
by Max Rusov

Latest post of the previous page:

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

Single - это не Double. Применяется для нажатий мыши, чтобы не конфликтовали макросы на одинарное и двойное нажатие

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 09:53
by John Doe
Max Rusov wrote: Теоретечески, можно использовать комбинацию из 3-х: Down/Hold/Relese,
Я так понял что в качестве основной заявляется проблема несочетаемости Press/Hold/Double.
Max Rusov wrote: Single - это не Double. Применяется для нажатий мыши
Документацию пора обновить, всё уже и так слишком сложно.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:03
by John Doe
John Doe wrote: Я так понял что в качестве основной заявляется проблема несочетаемости Press/Hold/Double.
Видимо сказывается разница в подходах: в MacroEx "Press" автоматически сработает при отпускании клавиши, если не выполнены условия Hold/Double.
А в MacroLib надо явно задать для данного случая Release.
Single - это не Double. Применяется для нажатий мыши
А почему тогда модификатор не игнорируется для клавиш клавиатуры?

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:04
by sToLp
John Doe wrote:какую цель вы преследуете назначая макросы одновременно на Single, Press и Down?
В данном случае пока ни какой практической. Просто изучаю взаимодействие каждого из модификаторов.
Max Rusov wrote:Single - это не Double. Применяется для нажатий мыши, чтобы не конфликтовали макросы на одинарное и двойное нажатие
Благодарю за разъяснение! Очень полезно!

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:07
by Max Rusov
Ну, правила обработки модификаторов в MacroLib устаканились довольно давно, и я в новой версии ничего не менял - просто распространил их на нативные макросы. Я готов что-то обсудить, но радикально менять - вряд ли буду.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:09
by Max Rusov
John Doe wrote: А почему тогда модификатор не игнорируется для клавиш клавиатуры?
Для клавиатуры он тоже имеет смысл. Он ведет себя как обычное нажатие, кроме случая когда определился Double.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:09
by sToLp
Макрос с модификатором Up трудно отловить.

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

Существует ли возможность как то поднастраивать модификатор Up?

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:16
by John Doe
Max Rusov wrote: Я готов что-то обсудить, но радикально менять - вряд ли буду.
Например если обнаружены одновременно Press and Hold, то Press можно понимать как Release.
Max Rusov wrote: Для клавиатуры он [Single] тоже имеет смысл. Он ведет себя как обычное нажатие, кроме случая когда определился Double.
Зачем для этого отдельный модификатор? Это поведение вполне интуитивно если одновременно обнаружены Press и Double.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:20
by Max Rusov
sToLp wrote: Макрос с модификатором Up трудно отловить.
Вы бы описали решаемую задачу, вместо того чтобы мучить зверушку. Оно заточено под конкретные сценарии использования, а не для исследований клавиатурных нажатий.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:25
by Max Rusov
John Doe wrote: Например если обнаружены одновременно Press and Hold, то Press можно понимать как Release.
Что значит "обнаружены одновременно"? Если 2 макроса повешены на одну кнопку, это еще не значит что они конфликтуют, у них могут быть разные условия срабатывания: области, condition etc... Наличие конфликта можно определить только в момент вызова, а Press и Hold срабатывают не одновременно. В момент нажатия Press еще неизвестно, будет ли Hold...
John Doe wrote: Зачем для этого отдельный модификатор? Это поведение вполне интуитивно если одновременно обнаружены Press и Double.
Возможно, но сделано - иначе

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:28
by John Doe
Max Rusov wrote: а Press и Hold срабатывают не одновременно
Однако условие для Release вы ведь тоже вычисляете не при отпускании (если я правильно понял http://forum.farmanager.com/viewtopic.p ... 26#p128126)

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:42
by John Doe
P.S.
И для Hold разве условие не сразу вычисляется?
(Если нет, и в системе установлен короткий интервал для автоповтора, то Hold не сработает)

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:53
by Max Rusov
Вот Вы вопросы задаете, я даже в код полез смотреть :) С condition для Relese не очень удачно получилось. Оно вызывается при отпускании, так что нажатие будет "съедено", даже если condition вернет False. Condition я только добавил, поэтому могут быть недоработки. Надо подумать.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 10:57
by sToLp
Max Rusov wrote: Оно [Up] заточено под конкретные сценарии использования
Благодарю Вас за вполне понятный ответ! И Вы, безусловно, правы — опыт потом покажет как можно будет использовать Up (и другие модификаторы).
При этом лично мне как то удобнее сначала попытаться умозрительно понять взаимодействие модификаторов.
И поэтому с удовольствием ознакомился бы с рекомендуемыми (или предпочитаемыми) Вами сценариям использования каждого из модификаторов и их возможных сочетаний.

MacroLib — Far Macro Library

Posted: Mon 23 Feb, 2015 11:02
by John Doe
Max Rusov wrote: С condition для Relese не очень удачно получилось.
Я считаю нормальным наличие некоторых ограничений, особенно если они документированы.
sToLp wrote: с удовольствием ознакомился бы с рекомендуемыми (или предпочитаемыми) Вами сценариям использования
Так перечитайте последние 3 страницы.

MacroLib — Far Macro Library

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