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 ... 99, 100, 101 ... 131, 132, 133  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Tue Mar 17, 2020 00:14    Post subject: Reply with quote

И снова здравствуйте :)

Наконец, новая версия:

Code:
2.0.8
+ добавлена команда StrPart
+ добавлена команда GetCpuInfo в плагин Sysinfo


Также выкладываю тестовую версию нового подплагина, позволяющего назначать на различные элементы главного окна тотала действия мышью. В процессе обновления своей сборки на 9.50 наткнулся на просторах на одну утилитку на Аutoit (rcmenuimg), предоставляющую похожий функционал. На функциональных кнопках она у меня так и не заработала, а там где заработала - работала как-то не очень устойчиво, да еще и лишний процесс в памяти. Но сама идея зацепила, особенно возможность назначить контекстные меню на незадействованные функциональные кнопки.

Предварительный синтасксис:

Code:
ControlSetMouseAction [switches] "" <индекс контрола> <CMD|EMCMD> <команда>


/R /L /M - соответствующие кнопки мыши, срабатывает на нажатие
/R:U /L:U /M:U - то же, но на отпускание
/R:D /L:D /M:D - даблклик

/W - колесо (в любую сторону)
/W:F - колесо вперед
/W:R - колесо назад

Для всех вариантов возможны модификаторы:
/K:C /K:S /K:A - Ctrl, Shift, Alt

Для колеса как модификаторы также можно использовать другие кнопки мыши
/K:R /K:L /K:M /K:X1 /K:X2
Теоретически, если верить Microsoft, их можно и как комбинацию для других кнопок мыши использовать, но я что-то с трудом такой вариант представляю.

Специальный параметр:
/B:1 - /B:7
Применяется для указания нужной кнопки на нижней панели.


<индекс контрола> - в тотале 9.0, оказывается, появилась возможность быстро, надежно и единообразно для любой битности получать хэндлы элементов окна через сообщение WM_USER+50. Список индексов, найден на ghisler.ch:

 Hidden text


Сначала начал делать "классическим" методом, Class+Instance, но потом обнаружил эту замечательную возможность. Старый метод буду убирать, все элементы главного окна доступны новым методом.

В принципе, интересует, как оно вообще работает на других конфигурациях, нет ли конфликтов. Я тестировал два дня на своей рабочей конфигурации и каких-то проблем не заметил.

Примеры:

Code:
ControlSetMouseAction /R /B:7 "" 17 EMCMD em_tcutils_tcmenupopup %COMMANDER_PATH%\Config\Exit.mnu

Открывает меню через утилиту TcPopupMenu по правому клику на кнопке выхода в нижней панели.

Code:
ControlSetMouseAction /W:F /K:R "" 7 CMD 570
ControlSetMouseAction /W:R /K:R "" 7 CMD 571

Листает колесом историю каталогов при наведении на левую панель размера файлов и нажатой правой кнопке мыши (аналогично встроенной возможности листать историю колесом с зажатым Shift).
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Mar 17, 2020 02:18    Post subject: Reply with quote

Loopback
И снова приветствуем. )

Спасибо за запрошенные GetCpuInfo (7 лет, етить-колотить! Surprised) и StrPart! Проверку прошли на ура! Smile
ControlSetMouseAction — неплохая идея. Вероятно, поможет избавиться от парочки резидентных скриптов вроде этого. Может, и с прокруткой табов справится с учётом?
Жаль только что-то посложнее (1, 2) не сделать. Sad
С функц. клавишами, правда, не срастётся, панель у меня убрана за ненадобностью.
К слову, у WM_USER+50 темка имеется.

Мой вопрос видел? А от Avada?

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



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Tue Mar 17, 2020 16:56    Post subject: Reply with quote

Flasher wrote:

Спасибо за запрошенные GetCpuInfo (7 лет, етить-колотить! Surprised)

Сам не ожидал, думал эпопея в прошлом году началась, а оно аж с 13 года Very Happy
Flasher wrote:

Может, и с прокруткой табов справится с учётом?


Такая конструкция будет работать, но только для активного окна, так работают команды 3005/3006.
Code:
ControlSetMouseAction /W:F "" 26 CMD 3006
ControlSetMouseAction /W:R "" 26 CMD 3005
ControlSetMouseAction /W:F "" 27 CMD 3006
ControlSetMouseAction /W:R "" 27 CMD 3005


Flasher wrote:

Жаль только что-то посложнее

Ну оно и не планировалось как комбайн.

Flasher wrote:

Мой вопрос видел? А от Avada?

Видел. Просто урезать нельзя. Нечто отдаленно похожее организуется работой с регионами (пример на Autoit), но результат выглядит крайне коряво.

Да и вообще, я уже писал, что у меня давно нет интереса к курочению окон тотала. Последняя версия плагина делалась с расчетом, чтобы больше мне к нему не возвращаться, функционал я считаю исчерпывающим. Вот только не надо было оставлять "простой" режим Confused А режим NARROW теперь совсем всё, можно его убирать.

Для 32 битной версии 9.50 сейчас стандартным можно считать такой вариант:

Code:

AddCondition /VISIBLE:1 "TButton" 2
AddControl /X:17 /Y:-74 /W:-20 "TButton" 2
AddControl /X:109 "TButton" 1
AddControl /X:109 "TButton" 3
AddControl /X:109 "TButton" 4
AddControl /X:109 "TButton" 5

AddDialog DIALOG_COPYMOVE_PINNED
AddControl /X:109 "TButton" 1
AddControl /X:109 "TButton" 3
AddControl /X:109 "TButton" 4
AddControl /X:109 "TButton" 5


С 64 всё стало сложнее. Тов. Гислер почему-то передумал прятать кнопку "Опции" при открытии прикрепленного окна. Он теперь ее уводит за пределы окна. Соответственно, условие перестало работать. Придется где-то допиливать.
Нет, это кажется в другом месте ошибка: плагин не понимает RedirectSection. В любом случае надо исправить.

Flasher wrote:

Смотрю, последняя порция правок в help так и не внесена.

Вижу только 2 правки от 30 октября, из них одна учтена. Вторая: /QUEUEBTN давно упразднён и не работает в коде.

Flasher wrote:

/С для 19 команд и /SW_SHOWNOACTIVATE также подвисли в ожидании.

SW_SHOWNOACTIVATE сделал, в след. версии.

А вот /C потому и подвисли, что "19" команд... куча работы. Да и при ближайшем рассмотрении всё не так просто и очевидно, как может показаться.

Если в команде присутствует числовое значение (StrLeft, StrMid и т.д.) - его при наличии ключа /С можно смело вычислять. В принципе это логично и может сократить лишние Set-ы. Хотя для Sleep и SendCommand - это называется сделать только ради того, чтобы было.

А вот целесообразность использования в командах со строчными значениями (например IniRead, MsgBox, а особенно GetUptime) мне неочевидна. Блок вычисления не работает со строками, т.е. при использовании вычисления теряется возможность конкатенации. Т.е. при любых вычислениях на выходе будет число или True/False.

Тут еще возникает проблема в случае, когда в команде более одного параметра. Какое из них вычислять? Вычислять все будет неправильно. Пример: строка "Button-1" без вычисления вернет "Button-1", а с вычислением "-1", т.к. для арифметической операции строка "Button" воспринимается как 0. Следовательно, придется городить еще какой-то механизм задания вычисляемых параметров.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Mar 17, 2020 19:13    Post subject: Reply with quote

Loopback wrote:
Такая конструкция будет работать, но только для активного окна
У меня на TC 9.51 RC5 x32 не завелось. Отключение ScrollTC не помогает.
Loopback wrote:
Ну оно и не планировалось как комбайн.
Но вообще ты подумай над самой фичей с Esc. Может, и без плагина удастся добавить.

Loopback wrote:
Видел. Просто урезать нельзя.
Жаль.

Loopback wrote:
А режим NARROW теперь совсем всё, можно его убирать.
О как. )

Loopback wrote:
Вижу только 2 правки от 30 октября, из них одна учтена.
См. 3 сообщения от 20 и 26 июля.

Loopback wrote:
всё не так просто и очевидно, как может показаться.
А казалось именно так. Smile
Loopback wrote:
Хотя для Sleep и SendCommand - это называется сделать только ради того, чтобы было.
В слипе может быть множитель (коэффициент) для предусловий выполнений без ожидания.
А в SendCommand — сложение и вычитание для сопряжённых (левая/правая либо активная/пассивная панель) индексов команд. В приведённом скрипте с Esc для SendMessage это можно наблюдать. WM_USER+50 тут как раз кстати. Как пример — первые пару условий для Select Case.

Loopback wrote:
А вот целесообразность использования в командах со строчными значениями (например IniRead, MsgBox, а особенно GetUptime) мне неочевидна.
Для IniRead в отличии от IniWrite не столь важно.
MsgBox нужен для отладки. Там смысл расчётов при получении нужного числа для потенциальной вставки формулы в другую команду вполне очевиден.
Аналогично и в отношении получения санти/децисекунд для GetUptime.
Loopback wrote:
Блок вычисления не работает со строками
Я надеюсь, пока не работает. )
Loopback wrote:
Какое из них вычислять?
То, которое после возвращения значений переменных будет иметь только цифры и вычислительные знаки. Или можно придумать какой-то экранный знак (~@$*ℱ) или обёртку из пары знаков (угловые/фигурные скобки, к примеру).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Tue Mar 17, 2020 21:28    Post subject: Reply with quote

Flasher wrote:
У меня на TC 9.51 RC5 x32 не завелось.

Странно, на той же версии работает.

Flasher wrote:
О как. )

Зачем нужен вариант, который сейчас заведомо не работает корректно в любом варианте? В принципе его можно оставить с пояснением, что только для версий 9.2х, но для новой версии его надо убирать.

Наверно все же лучше сделать для команды ключи типа /920 /950 и т.д., со своими наборами дефолтных настроек, чтобы не возникло неоднозначности.

Flasher wrote:

См. 3 сообщения от 20 и 26 июля.

Да, нашел, там прилично, оказывается. Пример на тот момент был неактуален, не было StrPart. Сейчас всё добавил.

Flasher wrote:
В слипе может быть множитель (коэффициент) для предусловий выполнений без ожидания.
А в SendCommand — сложение и вычитание для сопряжённых (левая/правая либо активная/пассивная панель) индексов команд. В приведённом скрипте с Esc для SendMessage это можно наблюдать. WM_USER+50 тут как раз кстати. Как пример — первые пару условий для Select Case.

С натяжкой, но допустим.

Flasher wrote:
Для IniRead в отличии от IniWrite не столь важно.
MsgBox нужен для отладки. Там смысл расчётов при получении нужного числа для потенциальной вставки формулы в другую команду вполне очевиден.
Аналогично и в отношении получения санти/децисекунд для GetUptime.

MsgBox ок.
GetUptime не принимает никаких параметров, тогда был просто разговор, что можно будет добавить, если понадобится. Но вроде и не понадобилось.
Flasher wrote:
Я надеюсь, пока не работает. )

Flasher wrote:
То, которое после возвращения значений переменных будет иметь только цифры и вычислительные знаки. Или можно придумать какой-то экранный знак (~@$*ℱ) или обёртку из пары знаков (угловые/фигурные скобки, к примеру).

Сомнительно, что в обозримом будущем оно будет работать со строками. А пока не будет, нет и смысла изгаляться с текстовыми параметрами. Вычисления в условиях - это уже прикрученный костыль, прикручивать его еще и ко всем параметрам... Ну не предполагался плагин для полноценных вычислений Smile Следующий шаг - только полноценный скриптовый язык, но будет ли он удобен именно для целей автозапуска - ещё вопрос, навскидку, как минимум придется сделать обязательными кавычки для строк и вводить разделитель параметров в командах (запятую).

В общем склоняюсь к тому, чтобы сделать для всех команд с числовыми значениями (Sleep, StrLeft, StrRight, StrMid, StrPart), причем надо подумать, возможно, даже и ключ в таких случаях не нужен - сломаться ничего не должно. Также MsgBox, SetEnv, SendCommand - тут с ключом. Остальное пока нет.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Mar 18, 2020 00:26    Post subject: Reply with quote

Loopback wrote:
Странно, на той же версии работает.
Не знаю. У меня просто файловая панель прокручивается, и всё. /K:C или /K:A не помогли. /K:R как модификатор вроде как не годится, т. к. по-любому меню выскочит.
/X1 и /X2 не упомянуты. Поддерживаются?
Loopback wrote:
Наверно все же лучше сделать для команды ключи типа /920 /950 и т.д., со своими наборами дефолтных настроек, чтобы не возникло неоднозначности.
Не, не надо. Вдруг Гислеру приспичит в новой версии опять что-то поменять и сдвинуть, как процессе бет он двигал кнопки. Пусть будет кастомный вариант.
Loopback wrote:
Но вроде и не понадобилось.
Мне подумалось, что логировать будет удобней в более комфортных единицах. В т. ч. в double для секунд.
Loopback wrote:
В общем склоняюсь к тому, чтобы сделать для всех команд с числовыми значениями (Sleep, StrLeft, StrRight, StrMid, StrPart)
StrPos ещё.
Loopback wrote:
Остальное пока нет.
А как же IniWrite, RegWrite и уж точно AddControl, где сплошные числа?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Wed Mar 18, 2020 13:01    Post subject: Reply with quote

Flasher wrote:
Не знаю. У меня просто файловая панель прокручивается, и всё. /K:C или /K:A не помогли. /K:R как модификатор вроде как не годится, т. к. по-любому меню выскочит.
/X1 и /X2 не упомянуты. Поддерживаются?

При наведении на табы - прокручивается панель?
/X1 и /X2 только в виде модификаторов. Можно и как основные добавить, просто мне их проверять не на чем.
Flasher wrote:
Не, не надо. Вдруг Гислеру приспичит в новой версии опять что-то поменять и сдвинуть, как процессе бет он двигал кнопки. Пусть будет кастомный вариант.

Поздно Smile Кастомный вариант в любом случае никуда не денется. Но было необходимо избавиться от /NARROW, который не применим к новым версиям.
Flasher wrote:
StrPos ещё.

В нем нет числовых значений.
Flasher wrote:
А как же IniWrite, RegWrite

Code:
<секция> <ключ> [<текст>]
<ключ> <параметр> <тип> <значение> [<значение2>..<значениеN>]

Хм, и где здесь числа?
Flasher wrote:
AddControl, где сплошные числа?

В параметрах плагинов нет возможности вычислений. Пока во всяком случае. А в параметрах со слешами вообще не получится использовать вычисления.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Wed Mar 18, 2020 14:55    Post subject: Reply with quote

Loopback wrote:
Такая конструкция будет работать, но только для активного окна, так работают команды 3005/3006.

Работает, но прокручивается только активная панель. Последовательно cmd команды выполнять можно? Наподобие такого:
Code:
ControlSetMouseAction /W:F "" 26 CMD 4001,3006
ControlSetMouseAction /W:R "" 26 CMD 4001,3005
ControlSetMouseAction /W:F "" 27 CMD 4002,3006
ControlSetMouseAction /W:R "" 27 CMD 4002,3005


Было бы неплохо иметь возможность временно отключать-включать функционал после запуска тотала.
Например, присвоить вышеуказанной секции какое-то имя и сделать возможность назначать пользовательские команды наподобие:
Autorun_Misc.dll имя_секции ON
Autorun_Misc.dll имя_секции OFF
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Mar 18, 2020 15:37    Post subject: Reply with quote

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



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Wed Mar 18, 2020 16:39    Post subject: Reply with quote

LonerD wrote:
Работает, но прокручивается только активная панель.

Ну да, я же про это и писал.
LonerD wrote:
Последовательно cmd команды выполнять можно? Наподобие такого:

Нет, но можно подумать.
LonerD wrote:
Было бы неплохо иметь возможность временно отключать-включать функционал после запуска тотала.

Вот с этим проблематично. Autorun как бы вообще не предназначался для таких сценариев.

Во-первых, это dll, и в таком варианте ее придется вызывать через exe-враппер (например, тот же rundll32). Во-вторых, естественно, команду нужно как-то передавать в процесс, где загружена рабочая версия dll. Нельзя сказать, что это невозможно, но простых путей тут нет.
Flasher wrote:
Нужно. Я тебе первой ссылкой пример, которым пользуюсь, скинул.

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

В смысле? Разве Set не для этого?
Flasher wrote:
Так куча значений/параметров ключей записывается в числовом виде.

Тем не менее это не делает сами параметры числовыми.

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



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

Post (Separately) Posted: Wed Mar 18, 2020 16:58    Post subject: Reply with quote

Loopback wrote:
Ну да, я же про это и писал.
Т.е. "не работает". Как если бы строк в конфиге не было.
Loopback wrote:
Ок, поддержку допкнопок добавлю.
Гуд. Только бы ещё завелось это всё.
Кстати, а хэндлы ты получаешь только при запуске плагина? После скрытия/показа компонентов окна ТС они обновятся — и привет.
Loopback wrote:
В смысле? Разве Set не для этого?
Имеется в виду StrPos Name+1 ...
Loopback wrote:
Тем не менее это не делает сами параметры числовыми.
Я о нужде больше.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1280

Post (Separately) Posted: Fri Mar 20, 2020 19:07    Post subject: Reply with quote

Бета-версия.

2.0.9 beta
+ в выражениях добавлена поддержка ключевых слов "not", "true", "false"
+ более детальная обработка ошибок в выражениях
+ в выражениях добавлен ключевой символ "&" для конкатенации
+ добавлена возможность вычислений в любом неименованном параметре путем добавления спецсимвола % перед кавычками
+ добавлен новый плагин Tweaks с некоторыми небольшими дополнениями для TC
* ModifyDialogs: удален переключатель /NANRROW для новых версий, в версии TC 9.20-9.21 можно использовать /VER:920N
+ ModifyDialogs: настройки "простого" режима адаптированы под новые диалоги в версии 9.50
- ModifyDialogs: исправлено чтение ShowCopyOptions из секции, перенаправленной с RedirectSection
+ В ShellExec добавлен флаг SW_SHOWNOACTIVATE

В общем, чем лепить кучу /С где надо и где не надо, проще оказалось сделать "вычисляемость" единообразно для всех параметров (не переключателей!). Вычисления производятся при указании % непосредственно перед кавычками. Т.е. вычисления обязательно должны быть в кавычках (внутри для строк можно использовать другие кавычки). Строки внутри вычисляемой строки сейчас нестрогие, т.е. если строка не содержит зарезервированных символов и не является ключевым словом, ее можно не брать в кавычки, хотя это и не очень правильно. Возможно, все же правильнее будет сделать строгие строки.

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

Справка пока не обновлялась, т.к. возможны изменения.

Flasher wrote:
Т.е. "не работает". Как если бы строк в конфиге не было.

Ну не знаю, без этого кода у меня вкладки колесом не переключаются, а с ним да.

Flasher wrote:
Гуд. Только бы ещё завелось это всё.
Кстати, а хэндлы ты получаешь только при запуске плагина? После скрытия/показа компонентов окна ТС они обновятся — и привет.

Добавил дополнительные кнопки, можешь попробовать (он теперь Tweaks называется). В справке описание (сырое) есть.

Хэндлы получаются при запуске и в процессе работы в случае, если окно полученное ранее не существует. Т.е. должно работать после показа, но я это не проверял. Возможно, надо всегда получать для тех окон, которые могут быть скрыты.
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 00:22    Post subject: Reply with quote

Loopback wrote:
+ в выражениях добавлена поддержка ключевых слов "not", "true", "false"
+ более детальная обработка ошибок в выражениях
+ в выражениях добавлен ключевой символ "&" для конкатенации
А можно по примерчику? Not же ты давно добавил.

Loopback wrote:
проще оказалось сделать "вычисляемость" единообразно для всех параметров (не переключателей!). Вычисления производятся при указании % непосредственно перед кавычками.
Т. е. предложение поизгаляться и прикрутить "костыль" силу таки возымело. Smile
Loopback wrote:
т.е. если строка не содержит зарезервированных символов и не является ключевым словом, ее можно не брать в кавычки
Можно конкретизировать по символам и ключевым словам?
Loopback wrote:
Справка пока не обновлялась, т.к. возможны изменения.
И тем не менее новая порция в ЛС от меня последовала (по новинкам — в меньшей степени). Smile
Loopback wrote:
Ну не знаю, без этого кода у меня вкладки колесом не переключаются, а с ним да.
Ещё бы они без этого кода переключались. Ты бы какой отладчик выслал что ли. Rolling Eyes

Loopback wrote:
Добавил дополнительные кнопки, можешь попробовать
Не, ни в какую плагин не хочет заводиться. Сперва на сортировке проверял:
Code:
ControlSetMouseAction /X1 "" 3 CMD 321
ControlSetMouseAction /X2 "" 3 CMD 322
Win 7 x32 виртуальная у тебя есть вроде. Посмотри там.
Loopback wrote:
если окно полученное ранее не существует.
Ранее — это на момент запуска плагина? Я же пишу про switch-команды в процессе работы ТС. Нужно всегда получать, конечно.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1280

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

Flasher wrote:
А можно по примерчику? Not же ты давно добавил.

Not был, но допустим был только в начале выражения, фактически,он обрабатывался отдельно. Сейчас можно в выражении использовать.

Пример... ну поэкспериментируй с разной арифметикой и выражениями, для чего-то ты же хотел эту возможность? Very Happy Например, такое должно работать:
Code:

%'"Pa&ram_" & (%aaa%+1)'   --> Pa&ram_2 (при %aaa% = 1)
---
if (%aaa% = 1) and not (%bbb% > 10) then
---
Set num 1
StrPos %"var&(%num%-1)" "abcdefgh" "d"
MsgBox %var0% --> 4


Flasher wrote:
Т. е. предложение поизгаляться и прикрутить "костыль" силу таки возымело.

Ну да, я уже начал было копипастить код для поддержки /C, но быстро стало понятно, что это мазохизм и вообще криво. В любом случае это куда меньший костыль получился. А в этом синтаксисе лучше все равно не получится.

Flasher wrote:
Можно конкретизировать по символам и ключевым словам?

+-/*=()&<> разделители
and,or,not, true,false - зарезервированные ключевые слова
Flasher wrote:
И тем не менее новая порция в ЛС от меня последовала (по новинкам — в меньшей степени).

Да, видел, займусь чуть позже.
По новинкам пока вообще не надо, там совсем криво, лишь бы суть понятна была.

Flasher wrote:
Не, ни в какую плагин не хочет заводиться.

Прошу прощения, забыл здесь упомянуть (в справке уже есть), что синтаксис немного поменялся, неиспользуемый "" убрал. Теперь так:
ControlSetMouseAction /X1 3 CMD 321
Но кстати говоря, именно 3 и 4 скорее всего не заработают, потому что:
Flasher wrote:
Ранее — это на момент запуска плагина? Я же пишу про switch-команды в процессе работы ТС. Нужно всегда получать, конечно.

Да. Плагин его получает заново, если хэндл, сохраненный при запуске, не существует. Но именно для индексов 3 и 4 (они по-сути виртуальные) так работать не будет. Надо поправить.
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 03:32    Post subject: Reply with quote

Loopback wrote:
Пример... ну поэкспериментируй с разной арифметикой и выражениями
Вот если бы ты не показал, я бы и не понял, что это именно так должно выглядеть.
Loopback wrote:
для чего-то ты же хотел эту возможность? Very Happy
Какую? Я ни про &, ни про true/false, ни про детальную обработку ошибок ничего не писал.
Code:
%'"Pa&ram_" & (%aaa%+1)'   --> Pa&ram_2 (при %aaa% = 1)
А, ты меня не так понял. StrPos Name+1 ... — хотелось не Name1 как новое имя переменной, а %Name% далее должно вернуть <значение позиции + 1>. Smile
Loopback wrote:
но быстро стало понятно, что это мазохизм и вообще криво.
С самого начала так подумал, поэтому удивился твоей реакции. )

Loopback wrote:
что синтаксис немного поменялся, неиспользуемый "" убрал.
Сам не понял, зачем тут лишний пустой параметр.

Loopback wrote:
Но кстати говоря, именно 3 и 4 скорее всего не заработают, потому что:
Цитата — это и есть пояснение? Или ты что-то забыл дописать?
Попробовал на тулбар натравить — результат тот же:
Code:
ControlSetMouseAction /X1 28 CMD 321
ControlSetMouseAction /X2 28 CMD 322
И тут сразу напрашивается 0 на главное (всё) окно ТС. Сделаешь?
А с учётом появления вычислений в переменных, будет кстати появление динамической переменной с индексом 1000 (WM_USER+50) для выяснения, какой является активная панель (1/2). Пару примеров в скриптах уже приводил. Актуально и для случая с прокруткой табов только в соотв. расположению указателя панели: 28-%var% = 26/27.

По остальному ясно.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
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 ... 99, 100, 101 ... 131, 132, 133  Next
Page 100 of 133

 
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