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 ... 230, 231, 232
 
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: 1110

Post (Separately) Posted: Thu May 14, 2026 00:08    Post subject: Reply with quote

AkulaBig wrote:
Попробую, как время выберу

Я просто подумал, что если такая скорость устроит, то нет смысла заморачиваться с чтением из stdout. Выигрыш все-равно будет минимальный. Болван уже дал решение, как считать данные с чужой консоли, но адаптировать это решение под Autorun лень, да и нет смысла. Прирост в скорости и так очевиден — через временный файл работает быстро.

 Hidden text

Кстати, в Autohotkey можно попробовать считать данные StdOut через ComObject. Не уверен, что получится с ExifTool, но был такой пример в этом топике. Там, кстати, и перевод из досовской кодировки используется. Я вам, наверное, ерунду написал про
Code:
buf.SetStr(ansi, 0, nSize, "CP:866")
utf8 = buf.GetStr(0, nSize, "CP:65001")
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 555

Post (Separately) Posted: Thu May 14, 2026 09:03    Post subject: Reply with quote

Orion9
Нашел, что плагин ExifToolWDX использует такую командную строку:
Code:

C:\PortablePrograms\FileManagers\TotalCommanderPortable\Plugins\wlx\ExifToolView\exiftool.exe -charset FileName=UTF8 -stay_open true -@ -

Нашел описание параметра -@ -:
Code:

Примечание. При записи аргументов в файл на диске после записи «-execute\n» сделана задержка до 0,01 секунды, прежде чем exiftool начнёт обработку команды. Этой задержки можно избежать, отправив сигнал CONT процессу exiftool сразу после записи «-execute\n». (Соответствующая задержка отсутствует при записи аргументов через конвейер с «-@ -», поэтому сигнал не требуется при использовании этого метода.)

И запутался совсем. Как использовать эту опцию? Почему нет временного файла? Не разбирались с этим?
Интересно, что плагин ExifToolView не запускает ExifTool. Похоже сам обрабатывает ее библиотеки. Не будем тревожить автора для разъяснений. Просто для инфы.

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

Orion9 wrote:
нет смысла заморачиваться с чтением из stdout.

Не в этом дело. В вашем примере не решается главный вопрос wdx-плагина. Однократный запуск ET и многократное считывание данных.
Но ваш код натолкнул меня на мысль:
Code:

2. Привязываемся к консоли чужого процесса по его PID

Может быть мне надо такое подключение выполнить.
Сейчас я переписал одноразовый запуск ET в au3. Думал это поможет. Но нет, так и не могу получить данные. Возможно это как-раз из-за того, что консоли вывода разные. Хоть я и использую ПИД одной копии ET. Но похоже это не гарантирует, что я данные из ее консоли получаю. И временный файл данных эту проблему никак не решит.

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

А ведь кажется можно просто проверить, запущена ли ET и в wdx. Буду тестить.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1110

Post (Separately) Posted: Thu May 14, 2026 13:33    Post subject: Reply with quote

AkulaBig wrote:
Как использовать эту опцию? Почему нет временного файла? Не разбирались с этим?

Читал, но написано там скудно, без примеров и хорошего объяснения. Болван реально лучше в этом плане помогает.

Очевидно опция -@ - предназначена для прямой работы с stdin и stdout, а сигнал CONT процессу, видимо, только для линуха.

Но как я писал выше, я бы не стал с этим заморачиваться. Работа через временный файл дает хороший прирост скорости (20-40 раз, и чем больше файлов для обработки, тем выше).

AkulaBig wrote:
В вашем примере не решается главный вопрос wdx-плагина. Однократный запуск ET и многократное считывание данных.

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



Joined: 01 Jan 2024
Posts: 1110

Post (Separately) Posted: Thu May 14, 2026 18:16    Post subject: Reply with quote

Пришлось поставить charset filename=Russian для решения проблемы с русскими именами файлов. Это не решает проблемы юникодных файловых имен при передаче их в качестве параметров Exiftool (там вообще с этим довольно шняжно все), но хоть так.

Это касается только вызова через ProcessExecGetOutput, через -@ arg_file работает все нормально (еще один плюс использования опции -stay_open).

Можно еще ускорить работу через временный файл, заменив Sleep(20) на Sleep(10), это дает эффект.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 555

Post (Separately) Posted: Thu May 14, 2026 21:01    Post subject: Reply with quote

Orion9 wrote:
Можно еще ускорить работу через временный файл

В общем я закончил тестирование. Как выше и писал, опция -stay_open совершенно не пригодна для работы в wdx-плагине, так как ET приходится запускать для каждого файла. По крайней мере с файлом аргументов. А про опцию -@ - мы ничего не знаем. Хотя и так понятно, что и она работу не ускоряет, судя по существующему wdx-плагину. Она действует только в пределах текущего файла.

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

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



Joined: 03 Dec 2008
Posts: 555

Post (Separately) Posted: Fri May 15, 2026 08:07    Post subject: Reply with quote

Orion9
Провел тестирование на скорость. Мой набор файлов, в котором присутствуют запароленные pdf и другие тяжелые файлы, мой алгоритм обрабатывает за 21,5 с. Плагин ExifToolWDX за 3 мин 30 с. Вот что значит обрабатывать с заданным временным интервалом, что требует -stay-open. Один запароленный pdf плагин обрабатывал минуты 2.
Единственное, что поля, которые можно прочитать (даты), плагин вывел, а у меня не выводятся. То-есть просто сразу пропустились.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1110

Post (Separately) Posted: Fri May 15, 2026 12:29    Post subject: Reply with quote

AkulaBig wrote:
опция -stay_open совершенно не пригодна для работы в wdx-плагине, так как ET приходится запускать для каждого файла.

Почему? Ничто вроде не мешает запустить exiftool.exe один раз и далее взаимодействовать с ним через файл аргументов.
AkulaBig wrote:
А про опцию -@ - мы ничего не знаем.

Болван тоже не знает?
AkulaBig wrote:
Хотя и так понятно, что и она работу не ускоряет, судя по существующему wdx-плагину. Она действует только в пределах текущего файла.

Это сейчас так. Но плагин не обновлялся 10 лет. Скорее всего автор использовал опцию -stay_open для ускорения, но с последними версиями exiftool.exe она не работает. Для правильной проверки нужно найти версию 10-летней давности.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 555

Post (Separately) Posted: Fri May 15, 2026 12:47    Post subject: Reply with quote

Orion9 wrote:
Почему?

Я написал выше. При чтении данных используется ИД процесса. А он разный для каждого запуска в wdx-файле. Запускаем ET, читаем его ИД в коде получения данных. И для каждого обрабатываемого файла в wdx-плагине он разный.
Orion9 wrote:
Болван тоже не знает?

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



Joined: 01 Jan 2024
Posts: 1110

Post (Separately) Posted: Fri May 15, 2026 13:08    Post subject: Reply with quote

AkulaBig wrote:
Я написал выше. При чтении данных используется ИД процесса.

Зачем PID, когда взаимодействие с процессом происходит через файл. Один файл для ввода, другой для вывода.

AkulaBig wrote:
А вы каким пользуетесь?

Там сейчас этих болванов развелось, как ... Выбирайте любой — не прогадаете. Я обычный Google AI юзаю. Простой поиск забыл, как кошмарный сон.

 Hidden text
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 ... 230, 231, 232
Page 232 of 232

 
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