View previous topic :: View next topic |
Author |
Message |
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon May 18, 2020 14:43 Post subject: |
|
|
Flasher wrote: | Вот бы ещё для безмышиного вызова такое. |
В смысле? Экзешник отдельный?
Flasher wrote: | P.S.: Шапку потом будешь править? |
На неделе поправлю, некогда еще было. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon May 18, 2020 14:47 Post subject: |
|
|
Loopback wrote: | В смысле? Экзешник отдельный? | Ну, как вариант, если чисто клавишный для плагина отпадает. Типа TcMenuPopup посл. редакции с опциями размещения по центу и под перекрестием разделителя с верхними углами файловых панелей. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon May 18, 2020 15:08 Post subject: |
|
|
Flasher
Ладно, как-нибудь можно будет подумать. У каждого подхода свои проблемы в реализации, неизвестно что проще. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon May 18, 2020 15:20 Post subject: |
|
|
Loopback
Хорошо. Если будет утилита, то публикацию, как понимаю, стоит ожидать в отдельном топике.
Вижу косяк. После вызова меню не работает навигация стрелками и его скрытие по Esc. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon May 18, 2020 16:48 Post subject: |
|
|
Flasher wrote: | Вижу косяк. |
Пожалуй, не совсем и косяк, учитывая что меню сейчас вызывается только мышью. За всё время даже и не подумал проверить такой сценарий
Перезалил по той же ссылке. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon May 18, 2020 16:59 Post subject: |
|
|
Loopback wrote: | учитывая что меню сейчас вызывается только мышью. | Почему только? А как же клавишные модификаторы?
Спасибо за фикс. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Sat May 30, 2020 23:57 Post subject: |
|
|
В общем, поскольку проблем вроде больше не возникло, плагин ушел в релиз.
2.1.1
- небольшие исправления в документации
* чистки в коде
+ Tweaks: ShowPopupMenu может отображать значки в меню |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 31, 2020 00:38 Post subject: |
|
|
Loopback
Да не сказать, что сильно тестировал менюшки. До баров даже руки не дошли, тем более с такими ограничениями.
По справкам:
Страница GetSystemMetrics опустела.
В англ. справке примеры для ModifyDialogs так и не поправил. Там же к неисправленным знакам вопроса добавилась страница ControlSetMouseAction в моих примерах. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
yozhik
Joined: 04 May 2014 Posts: 181
|
(Separately) Posted: Sun May 31, 2020 03:33 Post subject: |
|
|
А как по кнопке на тулбаре попасть, чтобы на неё менюшку повесить? Вижу класс TButtonBar, а как внутри него до кнопки добраться не понимаю. Вот так на всех кнопках одна и та же менюшка получается:
Code: | ControlSetMouseAction /L:U /C:TButtonBar 1 ShowPopupMenu %COMMANDER_PATH%\Profile\tools\MenuPopup\TCMenuSystem.mnu |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 31, 2020 03:46 Post subject: |
|
|
yozhik
Никак. Кнопки рисованые и не имеют отдельных оконных идентификаторов и классов. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Sun May 31, 2020 11:23 Post subject: |
|
|
Flasher wrote: | Страница GetSystemMetrics опустела. |
Точно. Интернет вчера отвратительно работал, страничка недогрузилась. Перезалил архив, версию не поднимал.
Flasher wrote: | В англ. справке |
Да, надо бы это сразу править, потом забывается... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 31, 2020 17:11 Post subject: |
|
|
Loopback wrote: | Да, надо бы это сразу править | Так и? См. выделения в цитате из второй половины сообщения в ЛС от 25 апр. 15:36. Плюс:
Quote: | # Shift+??? anywhere = switch to main toolbar, | Остальное, вроде, починил.
Add: исправления вижу, теперь ОК. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Sun May 31, 2020 20:53 Post subject: |
|
|
Новая версия. Даже не знаю - бета это или альфа... Самые глобальные изменения за последние семь лет Пока называю 2.2.x, но вероятнее всего, это будет 2.5 или 3.0.
Список изменений:
Унифицированы интерфейсы команд - внутренних и экспортируемых из плагинов (внутреннее изменение, оптимизация)
Парсер переписан с нуля, с учетом сохранения совместимости
Соответственно, переписаны условия If..Else..Endif, добавлена возможность однострочного If .. Then
Добавлены циклы For и While
Code: | For var = 1 To 5 [Step x]
...
Next
While var > 0
...
Wend |
Ключевые слова для управления выполнением (break, continue, return)
Добавлены пользовательские функции
Code: | Func FuncName([ByRef] var1, var2, var3 = 1)
...
EndFunc |
Переменные в функциях локальны
Добавлено присваивание переменной
Поддержка разделения на строки с символом "_" в конце
Code: | var = expression_1 + _
expression_2 - _
expression_N |
Поддержка загрузки подключаемых файлов (includes)
Code: | Pragma Include "path_to_include" (алгоритм аналогичен LoadLibrary, но работают только переменные окружения) |
В подключаемых файлах можно использовать Pragma IncludeOnce
В выражениях можно использовать переменные без %%
В целом, совместимость со старыми скриптами сохраняется. Если команда/функция находится в начале строки (без присваивания), то Autorun их различает по наличию "(" после имени. Если вдруг понадобится запустить "старую" команду, где первый символ после имени должен быть скобкой, ее можно просто взять в кавычки.
Code: | MsgBox 123 Title - OK
MsgBox("123", "Title") - OK
|
А вот в присваивании в правой части писать команды "старым" методом нельзя.
Code: | ex = FileExist "c:\Total\NoClose.exe" - работать не будет
ex = FileExist("c:\Total\NoClose.exe") - ОК |
Синтаксис %"expression" используется только в параметрах команд старого типа.
На моей рабочей конфигурации всё заработало без модификаций. Тем не менее, есть некоторые вынужденные (или желательные с точки зрения оптимизации) изменения, которые могут повлиять на работоспособность имеющихся конфигураций:
- Убрана команда AutorunBlockUnload(YES), которая оставалась с древних времен для совместимости, оставлена только Pragma AutorunBlockUnload.
- Убран старый синтаксис FileExists в условиях, можно легко переписать FileExists "file" -> FileExists("file") (имя должно быть в кавычках). Реально, тут было слишком много лишнего кривого кода ради одной функции.
- Убрана директива AutorunAllowWriteEnv, я ее и раньше считал невразумительным костылем, а в новом коде она вообще нормально не ложится.
- Еще не убрана, но есть желание убрать директиву AutorunLoadInSubrocess, все же сомневаюсь, что кому-то может понадобиться загружать Autorun повторно в процессе, например, поиска. А сейчас, с учетом подключаемых файлов, поиск этой директивы может быть уже не так безболезнен как раньше.
В целом, как оказалось, оба подхода вполне могут мирно сосуществовать, у каждого есть свои плюсы и минусы. Некоторые сложные команды, например ControlSetMouseAction или AddContol, без использования переключателей были бы весьма громоздкими и неудобными в задании параметров. В то же время для строчных команд лучше подходит функциональный синтаксис.
По получившемуся результату мне не нравится единственный момент - передача переключателей в функции через специальный первый параметр ("~/S /N ..."), для обычных команд еще терпимо, но вот для строчных как-то это совсем не очень. Наверно, придется немного переделать.
Справка еще не обновлялась, поэтому достаточно подробно расписал пока здесь, возможно, что-то еще будет меняться. У тех, кто знаком с Autoit, проблем с синтаксисом не будет
Правил-правил, в итоге скопировал старый вариант Обновил, последний раз, если что осталось - потом. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 31, 2020 22:31 Post subject: |
|
|
Loopback
Быстро же ты синтаксис в приоритет над последними хотелками вывел.
Loopback wrote: | добавлена возможность однострочного If .. Then | Наконец-то! А сделать, чтобы такая запись заработала в качестве параметра ControlSetMouseAction, можно?
Loopback wrote: | Добавлены пользовательские функции | А вызывать их как? Через Call, со скобками, без? Интерактивно (ControlSetMouseAction) можно?
Loopback wrote: | Переменные в функциях локальны | А если они объявлены до вызова?
Loopback wrote: | Поддержка загрузки подключаемых файлов (includes) | Имеется в виду скриптов с синтаксисом autorun?
Loopback wrote: | В целом, совместимость со старыми скриптами сохраняется. | Это очень хорошо.
Loopback wrote: | есть желание убрать директиву AutorunLoadInSubrocess | Нисколько не против.
Loopback wrote: | Наверно, придется немного переделать. | А тут только и остаётся добавить флаг в качестве последнего параметра.
Loopback wrote: | Обновил, последний раз | См. добавку в пред. посте. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1290
|
(Separately) Posted: Mon Jun 01, 2020 01:15 Post subject: |
|
|
Flasher wrote: | Быстро же ты синтаксис в приоритет над последними хотелками вывел. |
А чего тянуть-то?
На самом деля я вроде и не давал каких-то конкретных обещаний. Да и что-то та тема уже несколько поднадоела, когда-нибудь позже вернусь.
Flasher wrote: | Наконец-то! А сделать, чтобы такая запись заработала в качестве параметра ControlSetMouseAction, можно?
А вызывать их как? Через Call, со скобками, без? Интерактивно (ControlSetMouseAction) можно?
|
Напрямую в качестве параметра нет, но можно вызывать функцию с нужными If-ами и прочим. Вызов по имени точно такой же, как у любой другой команды. Можно без скобок командой (если не нужно возвращаемое значение), можно со скобками:
Code: |
FuncName 123 "asdf" - OK
FuncName(123, "asdf") - OK
ControlSetMouseAction ... FuncName 123 zxcv - OK
Func FuncName(var1, var2)
...
EndFunc
|
Flasher wrote: | А если они объявлены до вызова? |
Планировалось так: если объявлены в основном теле скрипта до вызова, то глобальные, если в функции, при отсутствии глобальной - локальная. Но что-то мне подсказывает, что сейчас оно как-то не как задумано работает...
Flasher wrote: | Имеется в виду скриптов с синтаксисом autorun? |
Конечно. Не знаю пока, насколько это будет востребовано именно в качестве библиотеки, но лично мне давно было нужно иметь возможность вынести основной конфиг из каталога плагина в заданное место. Даже думал дополнительный инишник делать, но так явно лучше.
Flasher wrote: | Это очень хорошо |
Когда-то казалось, что все новые фичи возможны, только если полностью поменять синтаксис и пожертвовать совместимостью, но как выяснилось, возможны менее болезненные варианты.
Flasher wrote: | А тут только и остаётся добавить флаг в качестве последнего параметра. |
Да, так и планировалось. |
|
Back to top |
|
|
|
|
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
|