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 ... 227, 228, 229
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Orion9



Joined: 01 Jan 2024
Posts: 1059

Post (Separately) Posted: Wed Apr 15, 2026 18:02    Post subject: Reply with quote

ZiabrevLV
У вас все правильно, что тут добавить.

Разве что, сделать проверку существования библиотеки, если вам это интересно. Такие проверки, как правило, лишними не бывают, и код потом повторять легче.

Например
Code:
IniWrite /R /EV- %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_EXE%"

Else

If Not FileExist(COMMANDER_PATH & "\Fileicons.dll") Then
   MsgBox("Не найден Fileicons.dll")
   Return
Endif
   
iniWrite /R /EV-  %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_PATH%\Fileicons.dll"


AkulaBig wrote:
они не стремительно быстро работают, как плагин ExifToolWDX.

Автор плагина ExifToolWDX, по всей видимости, использует опцию -stay_open. По-крайней мере в Readme.txt об этом неявно говорится.
Code:
ExifTool will be remain in the memory, until TotalCMD is closed.  If TotalCMD is closed unexpected, ExifTool will be need to be ended in Task Manager.

Я, однако, не нашел этому подтверждения. Но может вам тоже стоит попробовать?
 Hidden text
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Wed Apr 15, 2026 18:24    Post subject: Reply with quote

Orion9 wrote:
Но может вам тоже стоит попробовать?

Я все что можно пробовал. Эта опция для нас даже опасна. А прибавки скорости никакой нет.
Остается попробовать последний вариант. Запуск скрипта на au3 из Autorun. Вдруг WinScriptsAdv хоть чуть-чуть скорость крадет. Я здесь не хочу на эту тему писать. Но я там в скрипт au3 включил код на vbs. Освоил такую функция. Прикольненко.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1059

Post (Separately) Posted: Wed Apr 15, 2026 19:14    Post subject: Reply with quote

AkulaBig wrote:
Я все что можно пробовал.

А вот так пробовали?
 au3

 vbs

 aucfg
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Wed Apr 15, 2026 20:10    Post subject: Reply with quote

Orion9 wrote:
А вот так пробовали?

Не, так не пробовал. Оказывается еще файл надо создавать. Я просто включал эту опцию. Видимо из-за этого глюки были. Может быть будет время, попробую. Сейчас-бы понять почему один и тот-же код работает по разному. А потом уж в дебри лезть.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Wed Apr 15, 2026 23:19    Post subject: Reply with quote

Orion9
Закончил тестирование с запуском скрипта через Ауторан. Не учел, что ShellExec работает везде одинаково. То-есть результат можно получить только через буфер обмена и только через задержку. Остается только -stay_open потестить
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1059

Post (Separately) Posted: Thu Apr 16, 2026 00:08    Post subject: Reply with quote

Похоже, недооценил я болвана. Оказывается, он уже умеет работать с Autorun, хотя с большими ограничениями. Но все-равно прикольно.

 Autorun

 ProcessExecGetOutput

Ограничения. Видно, что код ИИ использует старую версию плагина, в которой командная запись была главной и чаще всего единственно возможной. Похоже, источником информации для ИИ является форум Гислера и те небольшие данные о работе плагина, которые он берет только оттуда. Этот форум он не анализирует, а жаль. Современный Autorun далеко уже ушел.

AkulaBig, а вы упорно хотите добить ExifTool Smile Думаю, автору плагина результаты ваших тестов будут, как минимум, интересны.

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

P.s.

Болван wrote:
Pragma Events ExitingTC: Ключевая фишка плагина Autorun. Она заставляет плагин выполнить функцию ExitingTC ровно в тот момент, когда вы нажимаете "крестик" в Total Commander.

Закат под стол
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Thu Apr 16, 2026 05:53    Post subject: Reply with quote

Orion9 wrote:
а вы упорно хотите добить ExifTool

Ну свойства документов у меня уже начисто сделаны. То-есть независимо от того, смогу увеличить скорость обработки или нет, exiftool будет использоваться. Потом для изображений без него не обойтись и т.д. То-есть у ExifTool есть поля, которые другие плагины не показывают. Например, для документов я заменил 4 плагина на ExifTool. С учетом, что ExifTool обновляется, а плагины не обновляются, выбор очевиден.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Thu Apr 16, 2026 17:13    Post subject: Reply with quote

Orion9
Начал внимательно изучать код с -stay_open. Сразу стало понятно, что варианты на au3, vbs отпадают. Для пользовательских колонок функции ExifTool_Quit() просто не может быть.
Сейчас попытаюсь реализовать вариант для Ауторан. Хотя есть большие сомнения, что это можно использовать из-за того, что ExifTool запускается со стартом ТС. Но хочу увидеть скорость работы этого варианта.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Thu Apr 16, 2026 22:21    Post subject: Reply with quote

Orion9
Код из ProcessExecGetOutput нормально запустить не смог. Но судя по тому, что смог запустить, стандартное поведение Ауторан. Сначала висит некоторое время, потом выводит данные.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1059

Post (Separately) Posted: Fri Apr 17, 2026 00:33    Post subject: Reply with quote

AkulaBig wrote:
Хотя есть большие сомнения, что это можно использовать из-за того, что ExifTool запускается со стартом ТС.

Хорошая новость в том, что не надо потом думать, как закрыть процесс при завершении работы ТС. Ключ /TT сам это делает.

Для запуска должен быть, конечно, триггер, запускать ExifTool со стартом ТС не годится. Вам придется придумать такой триггер.

Мне было проще, поскольку я взял за пример свою подсказку ExifTool. Поля подсказки активируются по Alt+F12, соответственно, это и служит триггером. Следующая смена полей (подсказки) позволяеет выгрузить ExifTool по PID, который уже известен.

 Hidden text


Код из модуля MediaInfo.aucfg, это самая его концовка. Можно подключить к модулю из сборки и проверить его работу. Но можно, конечно, не подключать, а просто посмотреть алгоритм и реализацию.

Скорость, конечно, взлетела. Не обманул болван Smile Я проверял на 10 полях из 60 возможных (те самые C1-C60), работает очень быстро.

Сейчас нет возможности расписать все в деталях, но может быть вам это и не нужно. Оставлю только поля для колонок, чтобы вручную их не делать самостоятельно
Code:
Widths32=80,30,30,30,30,30,30,30,30,30,30,30,30
Headers32=C1\nC2\nC3\nC4\nC5\nC6\nC7\nC8\nC9\nC10\nC11
Contents32=[=autorun.C1]\n[=autorun.C2]\n[=autorun.C3]\n[=autorun.C4]\n[=autorun.C5]\n[=autorun.C6]\n[=autorun.C7]\n[=autorun.C8]\n[=autorun.C9]\n[=autorun.C10]\n[=autorun.C11]
Options32=-1|0|96
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Fri Apr 17, 2026 07:42    Post subject: Reply with quote

Orion9 wrote:
Для запуска должен быть, конечно, триггер, запускать ExifTool со стартом ТС не годится.

Но для тестирования-то нормальное решение. Которое ничего не дало. Вся проблема в том, что любой вариант использования Ауторан работает одинаково. Очень долгая пауза, во время которой ТС висит. Потом выдача данных. При этом передвижение по панелям ТС практически неваозможно.
Позже запишу гифку, чтобы понятнее было.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 539

Post (Separately) Posted: Fri Apr 17, 2026 12:25    Post subject: Reply with quote

Orion9
Вот я натестировал сегодня. Дело в том, что некоторые документы очень тяжелые. Видимо из-за количества метаданных. К ним относятся некоторые djvu, pdf. И оказалось, что при полноценном тестировании на всех своих тестовых файлах плагин ExifToolWDX также, как и Ауторан, сдох. Также сначала ничего не происходит, потом появляется инфа. Правда в отлиичии от Ауторан он не вешает ТС. А мое решение работает быстрей всего.
Вот что значит неправильное тестирование.
DocsExifToolWDX:

Autorun работает практически также. Не стал подключать для тестирования. У меня там и код непричесанный. Только одно поле обработано. И с крякозябрами не все решено.
А вот WinScriptsAdv:

Просто летает. Наверное есть смысл и со -stay_open этот вариант прогнать. Вдруг еще побыстрей будет. Триггер конечно навряд ли можно придумать для такого. Ладно это будет следующий этап, если окажется, что смысл есть.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1059

Post (Separately) Posted: Fri Apr 17, 2026 12:50    Post subject: Reply with quote

Quote:
Позже запишу гифку, чтобы понятнее было

Вызывать exiftool.exe для каждого файла - медленно, это понятно. По этой причине вы и хотели ускориться. Опция -stay_open позволяет это сделать, т.к. процесс ExifTool запускается только один раз, а дальнейшее общение с ним происходит через файл параметров, который указывается в опции -@. Как только новые параметры появляются в этом файле с маркером -execute, ExifTool их выполняет. Результат передается либо в stdout, либо во внешний файл. Поскольку ProcessExecGetOutput в Autorun ждет завершения процесса, прежде чем предать полученные данные назад в плагин (о чем, кстати, неплохо написал ИИ), придется использовать только второй вариант с созданием временного файла.

Фрагмент из модуля может показаться большим, но нужного кода там мало, буквально 20 строк.

Запуск ExifTool и создание файла параметров во временном каталоге
Code:
If gExifStay Then
   FileWrite(gExifArgs, "", "UTF-8 NOBOM")       
   ShellExec /TT /SW_HIDE %gMediaExifX32% "-stay_open True -@ ""%gExifArgs%"""
   gExifPID = ProcessGetId("exiftool.exe")
   If gExifPID = 0 Then MsgBox("Процесс ExifTool не запущен")
EndIf


Основное тело. Временный файл (для вывода ExifTool) удаляется. Файл параметров заполняется с маркером -execute. Далее код ожидает появление нового временного файла с выводом ExifTool, и как только он появляется, данные с него считываются и, собственно, дальше передаются для обработки и вывода подсказки. Здесь я добавил параметры "-g1" и "-lang ru", чтобы вывод был такой же, как в wlx плагине от Progman13.
Code:
If FileExist(gExifOut) Then
   ShellExec /SW_HIDE %COMSPEC% '/c del /f /q "%gExifOut%"'
EndIf
#Local sArgs = "-W+!" & auCRLF & gExifOut & auCRLF & FileName & auCRLF & "-execute" & auCRLF
Local sArgs = "-g1"   & auCRLF & _
              "-lang" & auCRLF & _
              "ru"    & auCRLF & _                     
              "-W+!"  & auCRLF & gExifOut & auCRLF & FileName & auCRLF & "-execute" & auCRLF       
Local obj = BinaryFile(gExifArgs, "a")   
obj.WriteStr(sArgs, "", "UTF-8")
Free(obj)
ansi = "<time-out>"
For i = 1 To 50
    If FileExist(gExifOut) Then
       ansi = FileRead(gExifOut)
       ShellExec /SW_HIDE %COMSPEC% '/c del /f /q "%gExifOut%"'
       Break
    EndIf
    Sleep(20)   # time-out
Next
EndIf   

Скорость - космос. Пока не знаю, ближний это космос или дальний, но то, что космос, однозначно Smile
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 ... 227, 228, 229
Page 229 of 229

 
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