Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 100, 101, 102 ... 133, 134, 135  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 10261
Location: Россия, Саратов

Post (Separately) Posted: Sat Mar 21, 2020 08:46    Post subject: Reply with quote

Loopback
У меня пока нет времени на тщательное тестирование новых версий плагина (очень надеюсь заняться этим попозже), но при беглом просмотре новой справки к 2.0.9 beta обратил внимание вот на что.
Для команды ModifyDialogs указаны значения параметра /VER:<версия>:
950 Поддержка для версии TC от 9.50 до 9.51
920 Поддержка для версии TC от 9.20 до 9.21а

Предполагаю, что должно быть не 9.21a, а 9.22a, иначе весь диапазон версий не перекрывается. Если я прав, надо будет уточнить. Это касается и ридми, где прежний диапазон указан и вовсе как 9.20-9.21.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 21, 2020 12:27    Post subject: Reply with quote

Loopback wrote:
По "/QUEUEBTN" - кнопку "В очередь" необходимо добавлять в любом случае, даже если не планируете ее перемещать, поскольку по ее наличию определяется тип диалога ("Создать ярлык" имеет тот же класс, ох уж эта гислеровская экономия).
Loopback wrote:
/QUEUEBTN давно упразднён и не работает в коде.
А что же теперь делать с диалогом создания ярлыка? У меня там кнопка ОК на следующую наезжает.

Что касаемо ControlSetMouseAction /X1|2. Кнопки работают, но только совместно с дефолтным переходом по истории. Поэтому тут требуется ключ переопределения, иначе в таком виде это теряет смысл. Вероятно, это поможет и с прокруткой табов. И в отношении /R нужно сделать нечто, запрещающее вызов контекстных меню.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sat Mar 21, 2020 15:04    Post subject: Reply with quote

Flasher wrote:
А, ты меня не так понял. StrPos Name+1 ... — хотелось не Name1 как новое имя переменной, а %Name% далее должно вернуть <значение позиции + 1>.

Да без разницы, возможно и так и этак Smile
Flasher wrote:
Сам не понял, зачем тут лишний пустой параметр.

Я же писал, сначала плагин использовал Class+Instance для получения хэндлов. А потом нашел лучше способ.
Flasher wrote:
Попробовал на тулбар натравить — результат тот же:

Ну я уже даже не знаю тогда. Варианта только два - либо у тебя тотал < 9.00 (сомневаюсь), либо какие-то другие плагины конфликтуют. У меня на трех разных установках тотала никаких проблем нет.
Flasher wrote:
А с учётом появления вычислений в переменных, будет кстати появление динамической переменной с индексом 1000 (WM_USER+50) для выяснения, какой является активная панель (1/2). Пару примеров в скриптах уже приводил. Актуально и для случая с прокруткой табов только в соотв. расположению указателя панели: 28-%var% = 26/27.

Не особо понял. Переменную сделать можно (либо команду-враппер), но ее значение будет получаться только при загрузке, после уже не поменяешь.
Avada wrote:
Предполагаю, что должно быть не 9.21a, а 9.22a, иначе весь диапазон версий не перекрывается.

Возможно, у меня просто не было установленной 9.22, надо будет проверить потом на ней.
Flasher wrote:
А что же теперь делать с диалогом создания ярлыка? У меня там кнопка ОК на следующую наезжает.

А условия для чего? /QUEUEBTN за ненадобностью была убрана после появления условий.

Сейчас актуальный код (который по умолчанию):
 Hidden text


Flasher wrote:

Что касаемо ControlSetMouseAction /X1|2. Кнопки работают, но только совместно с дефолтным переходом по истории. Поэтому тут требуется ключ переопределения, иначе в таком виде это теряет смысл. Вероятно, это поможет и с прокруткой табов.

А, значит всё-таки что-то работает.

Что за ключ переопределения не понял.
Flasher wrote:

И в отношении /R нужно сделать нечто, запрещающее вызов контекстных меню.

Наверно можно, но имхо это не совсем правильно, т.к. фактически нарушает нормальное функционирование программы.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 21, 2020 19:12    Post subject: Reply with quote

Loopback wrote:
Да без разницы, возможно и так и этак
Ух ты. А как же эдак сделать? Smile Просто писать формулу типа %Name+1? Или %(Name+1)? Или %"Name+1"?

Loopback wrote:
Варианта только два - либо у тебя тотал < 9.00 (сомневаюсь), либо какие-то другие плагины конфликтуют.
Я же писал версию ТС — LAST. Проверяется Тотал в почти стирильных условиях, то бишь с одним Autorun из любых плагинов. Поэтому тут ни то, ни другое.

Loopback wrote:
Не особо понял.
Что именно?
Loopback wrote:
но ее значение будет получаться только при загрузке, после уже не поменяешь.
Это не годится. Я пишу о динамической. Ты же получаешь хэндлы не только на старте. Вот и эту переменную нужно. Можно её вообще одним символом (без процентов) сделать — @, например:
Code:
ControlSetMouseAction /W:F %"28-@" CMD 3005
ControlSetMouseAction /W:R %"28-@" CMD 3006


Loopback wrote:
А условия для чего?
А, по наличию кнопки F2, торможу. Получилось. Smile
Закинь в help тогда второй вариант с равными и переставленными (двумя) кнопками для 9.50+ x32:
 Hidden text

Loopback wrote:
Что за ключ переопределения не понял.
Перекрывающий ТС-шное поведение при кликах и встроенных хоткеях. Не знаю, можно ли их сделать неглобальными при этом.

Loopback wrote:
т.к. фактически нарушает нормальное функционирование программы.
Пусть это работает только с применением ключа /K, тогда нарушения не будет.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeTeP



Joined: 31 Mar 2005
Posts: 101
Location: Санкт-Петербург

Post (Separately) Posted: Sat Mar 21, 2020 20:13    Post subject: Reply with quote

Flasher wrote:
вариант с равными и переставленными (двумя) кнопками для 9.50+ x32

А я себе сделал диалог копирования/перемещения с кнопками, равномерно распределенными по ширине диалога. Win 7 (x64). TC 9.51 RC6 (32-bit).
Может кому пригодится:
 Скрины

 Hidden text
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 21, 2020 20:19    Post subject: Reply with quote

BeTeP wrote:
А я себе сделал диалог копирования/перемещения с кнопками, равномерно распределенными по ширине диалога.
А я с "неравномерно" то бишь?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sat Mar 21, 2020 20:24    Post subject: Reply with quote

Flasher wrote:
росто писать формулу типа %Name+1? Или %(Name+1)? Или %"Name+1"?

Если объяснишь, какого конкретно результата надо добиться - тогда скажу.
Flasher wrote:
Это не годится. Я пишу о динамической. Ты же получаешь хэндлы не только на старте. Вот и эту переменную нужно.

ControlSetMouseAction /W:F %"28-@" CMD 3005
Если сделать здесь, будет вычислено значение в момент запуска этой команды. Вычисления вычисляют то что в строке и результат передается в параметр. Всё.

Если я правильно понял, нужно чтобы идентификатор контрола мог меняться в зависимости от результата WM_USER + 1000. Ну можно ключ ввести, какой-нибудь /DEC, который будет вычитать результат (0/1) из идентификатора, заданного в команде. Наверно.

Flasher wrote:
Перекрывающий ТС-шное поведение при кликах и встроенных хоткеях. Не знаю, можно ли их сделать неглобальными при этом.

Уже посмотрел, не вижу простого способа. Да и сложного не вижу.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 21, 2020 20:42    Post subject: Reply with quote

Loopback wrote:
Если объяснишь, какого конкретно результата надо добиться - тогда скажу.
А я разве не объяснил? Ты же на него и ответил "возможно и так". Question
Flasher wrote:
хотелось не Name1 как новое имя переменной, а %Name% далее должно вернуть <значение позиции + 1>.

Loopback wrote:
Если сделать здесь, будет вычислено значение в момент запуска этой команды.
Тогда объясни это:
Loopback wrote:
Хэндлы получаются при запуске и в процессе работы в случае, если окно полученное ранее не существует.
Что мешает в процессе вычислять и с подобной переменной? Сейчас имеется 9 вариантов на 18 хэндлов, где это может пригодиться.

Loopback wrote:
Ну можно ключ ввести, какой-нибудь /DEC, который будет вычитать результат (0/1) из идентификатора, заданного в команде. Наверно.
Если тебе с ключом проще работать, то пожалуйста. Я за оптимальность. Только 1000 даёт не 0/1, а 1/2.

Loopback wrote:
Уже посмотрел, не вижу простого способа. Да и сложного не вижу.
Это, конечно, удручает. Т. е. от /X1 и /X2 можно смело избавляться. Что ж, буду по старинке — через AHK...

А про DisableMarkedMenuItems ты что-нибудь расскажешь? Как это выглядит и работает ли с подпунктами?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sat Mar 21, 2020 21:35    Post subject: Reply with quote

Flasher wrote:
А я разве не объяснил?

Наверно пытался... А я пытался понять, но не смог.

Flasher wrote:
Что мешает в процессе вычислять и с подобной переменной?

В процессе чего? В процессе работы скрипта - вычисляется. Как только скрипт передал значение команде, какие еще могут быть вычисления?

Flasher wrote:
Если тебе с ключом проще работать, то пожалуйста. Я за оптимальность. Только 1000 даёт не 0/1, а 1/2.

Угу, а я-то, из вредности, против оптимальности.

Мы сегодня друг друга категорически не понимаем. Я не знаю, как еще объяснять. И я опять перестал понимать, что требуется, а казалось вот-вот. И сделать ничего не могу, пока не пойму. Увы.

Flasher wrote:
Т. е. от /X1 и /X2 можно смело избавляться.

Ну да, конечно, раз тебе не нужно - избавляемся. Laughing Именно так и поступим.

Flasher wrote:
А про DisableMarkedMenuItems ты что-нибудь расскажешь? Как это выглядит и работает ли с подпунктами?

Если в главном меню будут пункты типа такого:

Code:
MENUITEM "`Header", 0


После выполнения команды

Code:
DisableMarkedMenuItems "`"


Они станут неактивными.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 21, 2020 21:58    Post subject: Reply with quote

Loopback wrote:
А я пытался понять, но не смог.
В смысле "не смог"? А "возможно и так" к чему было?
Code:
StrPos Name-1 abc c
%Name% => 2

Loopback wrote:
Как только скрипт передал значение команде, какие еще могут быть вычисления?
Я же выше писал, что хэндлы имеет смысл получать только динамически, потому что используются switch-команды во время работы в ТС. Т. е. те, что были на старте, исчезают и возникают новые.
Кстати, ты на вопрос так и не ответил:
Flasher wrote:
И тут сразу напрашивается 0 на главное (всё) окно ТС. Сделаешь?
Тут хотя бы меняться будет нечему. Т.е. 0 должен дать %AUTORUN_TCHANDLE%, грубо говоря.

Loopback wrote:
Угу, а я-то, из вредности, против оптимальности.
Я свой вариант решения твоему не противопоставлял в данном случае. Это вытекает из условия "Если тебе с ключом проще работать". Разве нет? Confused

Loopback wrote:
Ну да, конечно, раз тебе не нужно - избавляемся. Laughing Именно так и поступим.
Было бы над чем смеяться. Покажи мне хотя бы одного юзера, который будет использовать эти кнопки для своих нужд с абсолютно ненужной ему сменой путей в активной панели (по ходу истории каталогов), нивелируя всю полезность таких кликов. Тогда посмеёмся вместе.

Loopback wrote:
Если в главном меню будут пункты типа такого:
Под "выглядеть" я имел в виду внешнее отличие (осветление текста или что там) от дефолтного состояния. Так а подпункты можно будет прикрутить, чтобы em_0 не вешать? В верхних пунктах даже не знаю, зачем это может понадобиться.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sun Mar 22, 2020 00:03    Post subject: Reply with quote

Code:

StrPos Name-1 abc c
%Name% => 2

Ну вот, наконец-то понятно стало. Неудивительно, что не мог понять. Нет, такой вариант, разумеется, не работает. Это все равно что в том же Autoit написать $a-1 = StrPos(...) и надеяться что результат функции запишется в $a и из него сразу вычтется 1.
Flasher wrote:
Я свой вариант решения твоему не противопоставлял в данном случае. Это вытекает из условия "Если тебе с ключом проще работать". Разве нет?

Дело не в проще или сложнее, оптимальнее или нет, а потому, что по другому, со всякими "динамическими" переменными в параметрах просто не получится.

И вообще, какая цель преследуется этим кодом?
Code:

ControlSetMouseAction /W:F %"28-@" CMD 3005
ControlSetMouseAction /W:R %"28-@" CMD 3006

Думал долго, потом сделал тестовую версию с вычитанием из индекса контрола результата WM_USER+1000 и последующим получения хэндла. Получается фигня: при вращении колеса над неактивной панелью вкладок переключаются вкладки на активной панели.

Flasher wrote:
с абсолютно ненужной ему сменой путей в активной панели (по ходу истории каталогов)

Так они что, эти кнопки глобально работают? Т.е. если нажать не на списках, тоже историю мотает?

Flasher wrote:
Под "выглядеть" я имел в виду внешнее отличие (осветление текста или что там) от дефолтного состояния. Так а подпункты можно будет прикрутить, чтобы em_0 не вешать? В верхних пунктах даже не знаю, зачем это может понадобиться.

Скрин
Делаются неактивные все пункты меню (и подменю) в которых в начале текста есть заданный маркер. Маркер при этом из текста удаляется.

Flasher wrote:
И тут сразу напрашивается 0 на главное (всё) окно ТС. Сделаешь?

Сделал уже. Только не всё окно, а его неклиентская часть, потому что клиентская закрыта контролами.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Mar 22, 2020 00:57    Post subject: Reply with quote

Loopback wrote:
Нет, такой вариант, разумеется, не работает.
Ясно. Ну, уже, собственно, и неважно, с учётом того, что нет акцента на конкретных командах.

Loopback wrote:
по другому, со всякими "динамическими" переменными в параметрах просто не получится.
Т. е. с ключом аля /DEC, судя "по другому", получится? Есть же плагины, работающие в динамике, подстраиваясь под изменения контролов, в т. ч. определяя активность панели.

Loopback wrote:
Получается фигня: при вращении колеса над неактивной панелью вкладок переключаются вкладки на активной панели.
Спутал индексы. Так:
Code:
ControlSetMouseAction /W:F %"25+@" CMD 3005
ControlSetMouseAction /W:R %"25+@" CMD 3006

Loopback wrote:
Так они что, эти кнопки глобально работают? Т.е. если нажать не на списках, тоже историю мотает?
Разумеется. Смотри опять же цитату из сообщения по первой ссылке с примером. Источник обсуждения. Это системная навигация. Аналогично — в проводнике, браузерах и т. д.

Loopback wrote:
Делаются неактивные все пункты меню (и подменю) в которых в начале текста есть заданный маркер.
Гм. Я себе это несколько иначе представлял. Т. е. нужно блокировать только пункты с маркером, а не меню, в которых находится хотя бы один такой.
И желательно искать подстроку не только в начале, но и по всей строке.
Так, что-то у меня не работает.
Code:
DisableMarkedMenuItems "'"
Code:
    MENUITEM "'F11\tРежим: Полный экран", em_0
Никакой реакции. MNU в UTF-8 без ВОМ. C "`" тоже пробовал.

Loopback wrote:
Только не всё окно, а его неклиентская часть, потому что клиентская закрыта контролами.
И что с того, что закрыта? Суть же в том, чтобы зависеть не от положения курсора, а только лишь от активности окна того экземпляра ТС, к которому есть привязка по хэндлу, как в AHK/AutoIt это обычно делается.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sun Mar 22, 2020 02:18    Post subject: Reply with quote

Flasher wrote:
Т. е. с ключом аля /DEC, судя "по другому", получится? Есть же плагины, работающие в динамике, подстраиваясь под изменения контролов, в т. ч. определяя активность панели.

Если про ModifyDialogs, то он работает автономно, после того как в него один раз загрузили настройки. Из скрипта после его окончания ничего и нигде не берется. Ни в одном плагине.

Flasher wrote:
Спутал индексы. Так:

Так крутит в активной панели, в неактивной не крутит. Но вкладки крутятся в одну сторону вне зависимости от направления колеса.
Flasher wrote:
Это системная навигация. Аналогично — в проводнике, браузерах и т. д.

Понятно. Ну если появится мышь с экстракнопками - посмотрю.
Flasher wrote:
Гм. Я себе это несколько иначе представлял. Т. е. нужно блокировать только пункты с маркером, а не меню, в которых находится хотя бы один такой.

Я не знаю, что нужно а что нет, делалось под себя, я ее вообще не планировал выкладывать. А нужно было сделать неактивными несколько пунктов с разным текстом в разных подменю. Поскольку в дельфях (на котором написан ТС) обычные идентификаторы меню не задействованы, то нужно было либо искать по индексам (неудобно), либо так.
Flasher wrote:
И желательно искать подстроку не только в начале, но и по всей строке.

Не вижу ни малейшего смысла - зачем размещать маркер в разных частях строки? Для такой простой задачи только лишнее усложнение.

Добавлено спустя 4 минуты:

Flasher wrote:
Никакой реакции. MNU в UTF-8 без ВОМ. C "`" тоже пробовал.

Возможно надо задержку перед командой поставить, может меню не загрузилось еще. У меня она строит в конце скрипта и задержка 200мс.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Mar 22, 2020 02:56    Post subject: Reply with quote

Loopback wrote:
Если про ModifyDialogs
Плагины ТС имеются в виду. WLX/WFX. Из WDX — TwinKey тот же. Так каков ответ будет? Сделать рельно/нет? Или останется такое псевдорешение с предупреждением "работать будет, если в интерфейсе ничего не трогать"? Для меня, например, это весьма актуально, т. к. кнопки/хоткеи с TCFS2 со сменами вида юзаю на постоянке (F11 из mnu выше как пример). Ну, и не я один такой, само собой.

Loopback wrote:
Но вкладки крутятся в одну сторону вне зависимости от направления колеса.
Так это уже косяк плагина, а не конфликт в приёме с вычислением.

Loopback wrote:
зачем размещать маркер в разных частях строки?
Не обратил сразу внимания на:
Loopback wrote:
Маркер при этом из текста удаляется.
В такой ситуации текущее условие годится. Но пока не работает. Стоит первой командой в большом конфиге. После неё там явно больше 200 мс проходит. Поставил 2000 — то же самое. Кодировка точно не влияет?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1290

Post (Separately) Posted: Sun Mar 22, 2020 13:14    Post subject: Reply with quote

Flasher wrote:
Сделать рельно/нет?

Я уже запутался в хотелках. Если речь про инкремент результата WM_USER+1000, то да, можно. Но мне не нравится неочевидность работы всего этого, что в твоем варианте (к тому же невозможном), что с ключом. Но поскольку это имеет смысл только для пар, целью чего является определение активного (или неактивного) элемента из пары, более логичным и понятным представляется такой вариант: ввести виртуальные идентификаторы типа 3 и 4, т.е. например для панели табов: 100 - активная панель табов, 101 - неактивная, и т.д.
Flasher wrote:
Так это уже косяк плагина, а не конфликт в приёме с вычислением.

Да, был косяк. Всё работает.
Flasher wrote:
В такой ситуации текущее условие годится. Но пока не работает. Стоит первой командой в большом конфиге. После неё там явно больше 200 мс проходит. Поставил 2000 — то же самое. Кодировка точно не влияет?

Кодировка не влияет, т.к. функция работает уже после создания меню. Но в любом случае, функцию можно убирать, или нужно переделывать. Протестировал на новой сборке - оказывается, она не работает с меню со значками, видимо используется кастомная отрисовка. В старой сборке меню было без значков. Элемент затеняется, но маркер не убирается. В таком варианте неприемлемо.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 100, 101, 102 ... 133, 134, 135  Next
Page 101 of 135

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group