Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yahuu
Yes, in "command notation" variables expanded only in function's parameters, where it explicitly mentioned. In IniWrite this is filename.

In command notation, for expanding variable in parameters that does not support expanding itself, you may use "calculated strings":

Код: Выделить всё

IniWrite %COMMANDER_INI% %"sectionName" "executed" %"cmd1"
or, use "functional notation":

Код: Выделить всё

IniWrite(COMMANDER_INI, sectionName, "executed", cmd1)

---
SendCommand и IniWrite не поддерживают переменные, верно?
Да, в «командной записи» переменные раскрываются только в параметрах функции, где это явно указано. В IniWrite это имя файла.

Для раскрытия переменных в параметрах, которые сами не поддерживают раскрытие, можно использовать «вычисляемые строки»:

Код: Выделить всё

IniWrite %COMMANDER_INI% %"sectionName" "executed" %"cmd1"
или «функциональную запись»:

Код: Выделить всё

IniWrite(COMMANDER_INI, sectionName, "executed", cmd1)
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

Bilingual response: You are really so thoughtful.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

autorun.cfg

Код: Выделить всё

LoadLibrary "Plugins\Autorun_Runtime.dll"

RunThread ShowFullPathInTitle

Func ShowFullPathInTitle
	While 1
		srcPath = RequestCopyDataInfo(RequestCopyDataInfo("A") & "P")
		srcName = RequestCopyDataInfo(RequestCopyDataInfo("A") & "N")
		WinSetText(srcPath & srcName)
	Wend
EndFunc


TCx32: When the title displays content as expected, it does not affect other content.

TCx64: The title can also display content as expected, but commands like cm_RenameSingleFile and cm_EditPath cannot be used, and the editing state is lost immediately.

There may be other commands that have similar situations as well.

-Q2------------------------------
My configuration
wincmd.ini:

Код: Выделить всё

[Buttonbar]
Buttonbar=%COMMANDER_PATH%\USER\Bars\%COMPUTERNAME%.BAR
...
autorun.cfg

Код: Выделить всё

IniRead /R bar %COMMANDER_INI% "Buttonbar" "Buttonbar"
msgbox(bar & " " & StrLower(bar) & " " & StrUpper(bar))
StrLower and StrUpper have no effect, only affects extensions.

Изображение
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yahuu писал(а):TCx32: When the title displays content as expected, it does not affect other content.

TCx64: The title can also display content as expected, but commands like cm_RenameSingleFile and cm_EditPath cannot be used, and the editing state is lost immediately.
Yes, this is reproducible, caused by RequestCopyDataInfo calls. But unlikely it can be fixed without some actions from Ghisler.

---

Воспроизводится, причина в вызовах RequestCopyDataInfo, но вряд ли исправимо без вмешательства Гислера.
yahuu писал(а):StrLower and StrUpper have no effect, only affects extensions.
Can't reproduce, but have a though where can be a problem.

---

Воспроизвести не могу, но есть мысли по причинам.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

I mainly use 32-bit, so it won't bother me temporarily.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

[mod="CaptainFlint"]Вынужден напомнить участникам, что это форум для русскоязычного сообщества, и официальным языком является русский.
Обычно на отдельные несоблюдения этого правила мы смотрим сквозь пальцы, если это пара сообщений или цитирование. Но для длительных диалогов использование русского языка является обязательным, так как на данном форуме присутствует немало пользователей, не владеющих английским. Кроме того, двуязычность усложняет работу с поиском, приходится выполнять его многократно для разных вариантов переводов.

Пожалуйста, дальнейшие обсуждения на английском языке ведите в личной переписке или на официальном форуме, где этот язык является одним из основных.[/mod]

[mod="CaptainFlint"]Unfortunately, I have to remind everybody that this is a forum for Russian-speaking community, and the official language is Russian.
Usually we don't enforce this rule when there's just a message or two, or a quotation. But prolonged discussions must use the primary language. There are many users who don't speak English at all; plus it disrupts usability of search function, forcing people to do multiple searches for different translations.

From now on, please, continue English-language discussions either in private messages, or on the official forum where English is one of the primary languages.[/mod]
Почему же, ё-моё, ты нигде не пишешь "ё"?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия Autorun 2.2.14 beta

История изменений:

+ константа AUTORUN_PATH
+ Sysinfo: функция GetKnownFolderPath
+ Tweaks: опция отключения модификаторов в SetHotkeyAction
+ Tweaks: в SetHotkeyAction добавлен опциональный синхронный режим
- возможное исправление StrLower/StrUpper
+ Runtime: WinGetFocusedCtrl, WinSetCtrlFocus, MouseGetPos
* Tweaks: в SetHotkeyAction добавлен переключатель /D, /W переименован в /DM
- Tweaks: исправлено срабатывание комбинации SetHotkeyAction в неактивном экземпляре TC
+ Runtime: макрос ACTIVE_WINDOW, функция WinGetClass
+ функция FileSetTime
+ функция OutputDebugString
- Runtime: исправлено создание переменных WinGetState в случае ошибки
- Tweaks: в ShowPopupMenu устранена утечка GDI-ресурсов
- исправлена работа Random
+ в LngRead можно задавать только имя языкового файла без пути
+ добавлен макрос AUTORUN_TCLANGFILE с именем языкового файла
- исправлено возвращаемое значение Date и Time (UTC -> локальное)
+ SysInfo: GetWMIValue поддержка получения свойств-массивов, коды ошибок
+ Runtime: в RequestInfo добавлены идентификаторы 10001-10018
- Tweaks: исправлено лишнее выполнение %"expr" в параметрах вызываемой функциии при вызове CSMA/SHA/SMA
* возвращено неявное разворачивание переменных в параметрах строчных функций
+ SysInfo: WMIQuery добавлена поддержка получения свойств-массивов
- исправлена работоспособность AutorunBlockUnload
- исправлены %d и %u в StrFormat для 64-битных чисел
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Loopback
Спасибо за новую бету!
Функция SetHotkeyAction навела на мысль - а возможно ли сделать так, чтобы в плагине Autorun действовали еще и глобальные горячие клавиши (даже при неактивном окне ТС)?
Пример использования для себя вижу такой:
Копирую откуда угодно текст (например из браузера), нажимаю Alt+Ctrl+Shift+V и открывается текстовый редактор Akelpad сразу со вставленным текстом из буфера обмена [параметр /command(4191)].
Часто приходится так делать по различным причинам, чтобы сбросить форматирование текста, или проанализировать регулярками и т.п. Но приходится вначале переключаться в окно ТС для этого, немного неудобно.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

I added a button in the .bar file with the command set to "cd Z:\". When displaying the .bar using ShowPopupMenu, clicking this menu item will only open Z:\ on the left side, regardless of whether the current cursor is on the left or right.
When the command is set to "cm_100Percent 20", it can recognize whether the current cursor is on the left or right when clicking the menu item.

Is it possible that it is a bug in tc?

Код: Выделить всё

SetHotkeyAction /K:A /H:F ShowPopupMenu %COMMANDER_PATH%\USER\test.bar
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Monarch-LFV писал(а):а возможно ли сделать так, чтобы в плагине Autorun действовали еще и глобальные горячие клавиши (даже при неактивном окне ТС)?
Сделать-то можно, просто сняв ограничения. Но если будет запущено две или более копии TC, при вызове хоткея вызываемая функция будет выполняться на всех одновременно. Ограничить запуск одной функцией в теории можно, но с существующей реализацией проблематично.

Если сделать отдельной функцией через RegisterHotKey, тогда хоткей нельзя будет зарегистрировать второй раз, но тут обратная проблема: если закрыть копию TC, в которой был зарегистрирован хоткей, то и хоткей работать перестанет.

В общем, такой функционал не очень подходит к использованию через Autorun. Я бы не привязывал его к TC, а сделал отдельным скриптом на Autoit или AHK.

yahuu
Answered you in PM.

По вопросу: да, cd из bar сейчас всегда открывает в левой панели, это ограничение, про него есть примечание в справке. При желании можно обойти, перенеся cd с путем в промежуточную em-команду.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

Loopback писал(а): yahuu
Answered you in PM.

По вопросу: да, cd из bar сейчас всегда открывает в левой панели, это ограничение, про него есть примечание в справке. При желании можно обойти, перенеся cd с путем в промежуточную em-команду.
Yes, I am currently using the em command to do it. Thank you

Posted after 1 hour 37 minutes:
yahuu писал(а):autorun.cfg
[/code]
autorun.cfg

Код: Выделить всё

IniRead /R bar %COMMANDER_INI% "Buttonbar" "Buttonbar"
msgbox(bar & " " & StrLower(bar) & " " & StrUpper(bar))
StrLower and StrUpper have no effect, only affects extensions.

Изображение

2.2.14_beta, StrLower and StrUpper Verification passed.
Mrak_Tlen
Сообщения: 30
Зарегистрирован: Вт окт 08, 2024 21:37

Сообщение Mrak_Tlen »

Добрый день.

ShowPopupMenu ....\But_5.BAR

кнопка
cmd=cm_FocusLeft,cm_MatchSrc

ошибка "Имя ключа реестра пустое"

cmd=cm_FocusLeft, cm_MatchSrc (пробел после запятой)

ошибка "неизвестная команда"

При этом кнопка работает независимо от пробела. Если создать свою команду em_RightMatch, работает

В справке есть упоминание про Специализированные команды, но не уверен, что то оно
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Mrak_Tlen

День добрый.

Судя по всему у вас старая версия (релиз с wincmd.ru)? Какие-то странные ошибки, в последних версиях таких быть не должно.

Впрочем, это дело не меняет, поскольку связки команд не поддерживаются. Надо будет это тоже упомянуть в документации.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

In Windows CMD, executing "tcfs2 /ef tcm(905)" can open the copy window.
In autorun, the following commands all open the compression window.

Код: Выделить всё

SendCommand(905)
SendCommand cm_Copy
CommandExec cm_Copy
ShellExec '%COMMANDER_PATH%\Tools\TCFS2\TCFS2.exe' '/ef tcm(905)'
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

yahuu
Видимо, у вас в Autorun команда вызывается комбинацией клавиш с модификатором Alt.
Используйте вместо cm_Copy команду cm_CopyOtherpanel.
Ответить