MacroLib — Far Macro Library

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

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 09:46

Latest post of the previous page:

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

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

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

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 09:53

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

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

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 10:03

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

User avatar
sToLp
Posts: 726
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 36 times
Been thanked: 5 times

MacroLib — Far Macro Library

Post by sToLp » Mon 23 Feb, 2015 10:04

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

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 10:07

Ну, правила обработки модификаторов в MacroLib устаканились довольно давно, и я в новой версии ничего не менял - просто распространил их на нативные макросы. Я готов что-то обсудить, но радикально менять - вряд ли буду.

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 10:09

John Doe wrote: А почему тогда модификатор не игнорируется для клавиш клавиатуры?
Для клавиатуры он тоже имеет смысл. Он ведет себя как обычное нажатие, кроме случая когда определился Double.

User avatar
sToLp
Posts: 726
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 36 times
Been thanked: 5 times

MacroLib — Far Macro Library

Post by sToLp » Mon 23 Feb, 2015 10:09

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

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

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

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

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 10:16

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

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 10:20

sToLp wrote: Макрос с модификатором Up трудно отловить.
Вы бы описали решаемую задачу, вместо того чтобы мучить зверушку. Оно заточено под конкретные сценарии использования, а не для исследований клавиатурных нажатий.

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 10:25

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: 11223
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 10:28

Max Rusov wrote: а Press и Hold срабатывают не одновременно
Однако условие для Release вы ведь тоже вычисляете не при отпускании (если я правильно понял viewtopic.php?p=128126#p128126)

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

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 10:42

P.S.
И для Hold разве условие не сразу вычисляется?
(Если нет, и в системе установлен короткий интервал для автоповтора, то Hold не сработает)

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 10:53

Вот Вы вопросы задаете, я даже в код полез смотреть :) С condition для Relese не очень удачно получилось. Оно вызывается при отпускании, так что нажатие будет "съедено", даже если condition вернет False. Condition я только добавил, поэтому могут быть недоработки. Надо подумать.

User avatar
sToLp
Posts: 726
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 36 times
Been thanked: 5 times

MacroLib — Far Macro Library

Post by sToLp » Mon 23 Feb, 2015 10:57

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

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

MacroLib — Far Macro Library

Post by John Doe » Mon 23 Feb, 2015 11:02

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

Max Rusov
Posts: 3600
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 7 times

MacroLib — Far Macro Library

Post by Max Rusov » Mon 23 Feb, 2015 11:08

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

User avatar
sToLp
Posts: 726
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 36 times
Been thanked: 5 times

MacroLib — Far Macro Library

Post by sToLp » Mon 23 Feb, 2015 11:13

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

Большущее спасибо! Будем практиковаться.

Post Reply

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