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



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Sat May 16, 2026 17:19    Post subject: Reply with quote

Orion9 wrote:
 Скрытый текст

Я выше написал, что проверил vbs. Не работает даже сам скрипт. Код какой-то неправильный.
Orion9 wrote:
Для нормальной работы нужен отдельный wdx

Есть отдельный wdx, который работает в 10 раз медленней моего скрипта. Из-за временных интервалов, которые обязательно требуются при -stay_open.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1127

Post (Separately) Posted: Sat May 16, 2026 18:19    Post subject: Reply with quote

AkulaBig wrote:
Не работает даже сам скрипт. Код какой-то неправильный.

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

Хотел уже снести это дело, но потом подумал, почему бы не проверить через cscript.exe, заодно и скорость посмотреть. Снял комментарии в options.ini
Code:
vbs=%WINDIR%\system32\cscript.exe
vbsCmdArgs=//nologo
vbsVarFormat=filename="%s"
vbsDoubleSlashPath=0
vbsStdOutFormat=Wscript.echo %s

Ну что сказать. Работает. Теперь и удаление и sleep работают, но скорость значительно упала. Плюс появились кракозябры, но это, наверное, можно решить. Полный скрипт
 Hidden text

Можно, конечно, и дальше ловить рыбку в этой мутной воде, но, похоже, улов будет не тот, депрессивный. В общем, я пас.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Sat May 16, 2026 23:44    Post subject: Reply with quote

Orion9 wrote:
Мой скрипт работает

Пришлось покопаться, но завел ваш скрипт. На vbs он не работает:

А вот на cscript.exe действительно работает. Только убрал коммент с stream.WriteLine "-" & tagName
В общем ваш скрипт, видимо, написан под старый движок vbs. А у меня Винда 11 с последними обновлениями.
Перевод крякозябров я делал:
Code:

With CreateObject("ADODB.Stream")
   .Charset = "Windows-1251"
   .Open
   .WriteText objWshExec.StdOut.ReadAll
   .Position = 0
   .Charset = "UTF-8"
   content = .ReadText
End With

Но с налета привязать к вашему скрипту не получилось.
А теперь очень неприятное. Посмотрите, как отвратительно работает ваш вариант и как отлично мой. При этом вашим скриптом я вывожу только одно поле и без перекодировки. А мой скрипт выводит 35 полей и перекодирует текст. Так что искусственное задание временного интервала, это полное днище:
ваш

мой
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Sun May 17, 2026 10:43    Post subject: Reply with quote

Orion9
Ну наконец-то и у меня получилось на au3. Пока сделал для одного поля. Работает быстро. Теперь надо решить вопрос с запуском/закрытием ET. Если с Ауторан запускать, закрывается сам при выходе из ТС. Но все время висит в памяти. Если запускать из скрипта, не закрывается при выходе из ТС. Если закрывать в скрипте, работает медленнее. Ну это понятно. На каждом файле запускается/закрывается.
 Hidden text

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



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Wed May 20, 2026 12:56    Post subject: Reply with quote

Orion9
Все-же пришлось применить временный интервал и подобрать задержку. Иначе не подхватывались данные из файла, следующим за косячным.
 Hidden text

Но теперь надо понять, можно ли самому обработать ошибку "Время ожидание операции истекло":

Дело в том, что файл данных-то создается и в нем есть рабочие поля, которые плагин ExifToolWDX выводит:

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



Joined: 01 Jan 2024
Posts: 1127

Post (Separately) Posted: Wed May 20, 2026 23:10    Post subject: Reply with quote

AkulaBig
Бросайте вы это дело, к чему такая куча костылей? Вы серьезно собрались 30 полей что ли выводить Shocked Ну come on же... Всё, что требует горизонтального проручивания неюзабельно, будь то браузер, текстовый редактор или панель ТС.

Даже если вы оставите неколько полей, которые будут помещаться на экран, всё-равно овчинка выделки не стоит. Что такого уникального может предложить exifool, чтобы так загоняться?

AkulaBig wrote:
Может у вас есть идеи как перехватить обработку ошибки?

Речь идет о плагине, или о скрипте? А то я что-то запутался. Если дергание каждого поля приводит к такому результату (а оно судя по всему приводит, я же не зря закомметировал вывод одиночного поля), то единственным выходом остается получать весь выхлоп от утилиты и разбирать его на отдельные поля.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Thu May 21, 2026 07:04    Post subject: Reply with quote

Orion9 wrote:
30 полей что ли выводить

Нет, конечно. Вывожу 34 поля Smile
Orion9 wrote:
Всё, что требует горизонтального проручивания неюзабельно

Почему? Размеры экранов девайсов на всех гаджетах разные.
Orion9 wrote:
Что такого уникального может предложить exifool, чтобы так загоняться?

Например, сейчас я заменил 4 плагина для показа документов на один. И для других расширений заменю.
Orion9 wrote:
Речь идет о плагине, или о скрипте?

Сравниваю плагин китайца с моим скриптом.
Orion9 wrote:
Если дергание каждого поля приводит к такому результату (а оно судя по всему приводит, я же не зря закомметировал вывод одиночного поля)

Действительно запутались. Плагин ExifToolWDX от китайца как-то обрабатывает ошибку сам и выдает свое сообщение. При этом поля, которые он может прочитать, он показывает. Дергает, это просто выражение. На экране ничего не дергается. Я имею ввиду каждое поле перебирается по очереди. В ET есть временной интервал, за который ET старается прочитать файл. Где-то около 1 сек. И вот если я в скрипте устанавливаю временной интервал 2 с, то через 1 с выдается ошибка от ET. А мой код не обрабатывается. Но в плагине как-то эта ошибка перехватывается. Самое обидное, что файл с данными при этом создается. Посмотрите, ET почему-то выдает ошибку о времени, но после этого создается файл с правильными данными.
А у китайца сообщение не как у меня. Текст свой на английском. И данные выводятся. То-есть он как-то перехватывает ошибку ET^

А вот как работает плагин:

Эта строка появляется через пару минут. То-есть, насколько я понимаю, плагин обрабатывает каждое поле и только после этого выводит данные. Таким образом задержка ET около двух секунд умноженная на 34 поля, дает около 2 мин.

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

Кажется становится понятным возникновение ошибки. Ошибка плагина со скрина Warning [minor], это ошибка самого ET. Она считается незначительной, поэтому плагин продолжает работать. А вот ошибка с гифки на русском языке непонятно чья.


Last edited by AkulaBig on Thu May 21, 2026 10:35; edited 1 time in total
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Thu May 21, 2026 10:34    Post subject: Reply with quote

Orion9
Еще вопрос. Решил проверить ваш скрипт:
 Hidden text

Выдает ошибку:

Можете подсказать, что неправильно?

Добавлено спустя 1 час 33 минуты:

Orion9
Ну вот и все. Решил проблему ошибки. Подумал, а что может выдавать ошибку на русском языке? Скорей всего оська. А значит надо смотреть исходники WinScriptsAdv. И точно, в плагине забит код, что если операция не выполняется 2 сек, процесс плагина закрывается. Стоило установить задержку побольше и все заработало. Теперь надо решить, как поизящней переделать этот код.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1127

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

AkulaBig wrote:
Нет, конечно. Вывожу 34 поля

Ну и как, удобно по ним перемещаться?
AkulaBig wrote:
Почему? Размеры экранов девайсов на всех гаджетах разные.

Имеенно об этом и речь. Хотя не только об этом.
AkulaBig wrote:
Например, сейчас я заменил 4 плагина для показа документов на один. И для других расширений заменю.

Зачем? У меня больше 50 wdx установлено, жить они мне не мешают.
AkulaBig wrote:
Самое обидное, что файл с данными при этом создается. Посмотрите, ET почему-то выдает ошибку о времени, но после этого создается файл с правильными данными.

У меня сейчас много других дел, т.ч. в ближайшее время точно посмотреть не смогу, да и большого желания нет, если честно, разбираться, что там делал китаец 10 лет назад.
AkulaBig wrote:
А у китайца сообщение не как у меня.

Прежде, чем делать плагин, автор (китаец) наверняка изучил всю документацию exiftool, а вы, если я правильно понимаю, хотите заменить целых 4 плагина (или даже больше), но изучать документацию при всем при этом не желаете Laughing

Ну никто, кроме вас, заниматься реверс инженегрингом все-равно не будет )

Но есть и хорошая новость. Китайцу 10 лет назад было сложнее. Тогда ИИ не было. Сейчас из болвана можно хоть целые плагины выбивать.

AkulaBig wrote:
Я имею ввиду каждое поле перебирается по очереди.

Я это понял. Не знаю, как там сделано в плагине, но если вернуться к vbs, то: когда нет нужного тега, exiftool не создает файл с выводом, отсюда и таймаут на вашем первом скрине. Когда нужные теги есть и нет таймаута, работает быстро. Именно поэтому я закомментировал строку stream.WriteLine "-" & tagName в скрипте — чтобы был полный выхлоп, который можно затем построчно разобрать.

Возможно, в exiftool все предусмотрено и все решается, но это нужно изучать ее доки, причем досконально.
AkulaBig wrote:
Можете подсказать, что неправильно?

Возможно, в файл .ahk нужно добавить FileEncoding 65001 и в конфиге плагина включить опцию CheckUTF8Result=1, которую делал Progman13
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Thu May 21, 2026 15:17    Post subject: Reply with quote

Orion9 wrote:
Ну и как, удобно по ним перемещаться?

Хм, удивлен. Вообще никаких проблем ползунок туда-сюда гонять.
Orion9 wrote:
У меня больше 50 wdx установлено, жить они мне не мешают.

Жить не мешают, но инфы выдают меньше, чем одна ET.
Orion9 wrote:
в ближайшее время точно посмотреть не смогу

Я про гифку Smile
Orion9 wrote:
Но есть и хорошая новость.

Есть. Все получилось Smile
Orion9 wrote:
в файл .ahk

А как знак присвоения значения с этим связан? Ладно, разобраться с опцией -@ - следующий этап. Пока я очень доволен полученным результатом. Хорошо, что автор WinScriptsAdv выложил исходники. Изящно решить проблему не удалось. Сильно ковыряться нужно. Поставил тайм-аут вместо 2000 20000 и на этом закончу. Мой тестовый файл отрабатывает. Думаю на этом можно остановиться. Смотрите, как теперь классенько, по сравнению со скрином выше:
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1127

Post (Separately) Posted: Thu May 21, 2026 17:27    Post subject: Reply with quote

AkulaBig wrote:
Вообще никаких проблем ползунок туда-сюда гонять.

Оно и видно по этим двум скринам Laughing
Скрин 1
Скрин 2
Ладно, это шутка была, как и многое другое ранее ) Но мы сильно отклонились от темы. От Autorun, как я понимаю, вы уже все что нужно взяли — завершение процесса по таймеру (хорошая идея, кстати). WinScriptAdv это все-таки отдельная тема. Или переходите сюда со временем, если захотите.
AkulaBig wrote:
Я про гифку

Лоханулся, признаю.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Thu May 21, 2026 18:06    Post subject: Reply with quote

Orion9 wrote:
Оно и видно по этим двум скринам

Извините, в следущий раз обязательно выложу 3 листа очень необходимой инфы, без которой эти скрины непонятны Twisted Evil
Orion9 wrote:
От Autorun, как я понимаю, вы уже все что нужно взяли — завершение процесса по таймеру

Кстати, вот код:
Code:

# QuitExifTool.aucfg
# ================================   Описание   ================================
# Закрывает программу ExifTool, если нет активных пользовальских колонок.
# ================================   Аргументы   ===============================
# Отсутствуют.
# ==========================   Возвращаемое значение   =========================
# Отсутствует.
# =================================   Примеры   ================================
# Включает QuitExifTool.aucfg в файл autorun.cfg.
# Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\QuitExifTool.aucfg
# ==============================================================================

# ===============================   Description   ==============================
# Closes ExifTool program if there are no active user columns.
# ================================   Arguments   ===============================
# No arguments.
# =============================   Returned value   =============================
# No return value.
# =================================   Examples   ===============================
# Includes QuitExifTool.aucfg in autorun.cfg file.
# Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\QuitExifTool.aucfg
# ==============================================================================

Func ThreadWatchQuitExifTool
   # Получить текущий режим просмотра
   # Если он меньше 6, то это не пользовательский режим, завершаем процесс ExifTool
   # Get current view mode
   # ЕIf it is less than 6, then this is not user mode, terminate ExifTool process
   If SendMessage(AUTORUN_TCHANDLE, 1074, 1015) < 6 And SendMessage(AUTORUN_TCHANDLE, 1074, 1016) < 6 Then
      If ProcessExist("exiftool.exe") Then
         ProcessTerminate("~/A /W", "exiftool.exe")
         DllCall("kernel32.dll\DeleteFileW", "Wstr", TEMP & "\ET_DOCS_args.txt")
         DllCall("kernel32.dll\DeleteFileW", "Wstr", TEMP & "\ET_DOCS_out.txt")
      EndIf
   EndIf
EndFunc

Использован новый функционал ТС11.57.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1127

Post (Separately) Posted: Thu May 21, 2026 19:07    Post subject: Reply with quote

AkulaBig wrote:
в следущий раз обязательно выложу

Не стоит Smile Предыдущие скрины хорошо демонстрируют желание обычного пользователя уместить все на одном экране, что нормально. Это естественный ход вещей, от которого никуда не деться.
AkulaBig wrote:
Использован новый функционал ТС11.57.

Первые плоды услилий Flasher? Smile Приятно видеть.

Функция вызывается в отдельном потоке? С каким интервалом?
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 567

Post (Separately) Posted: Thu May 21, 2026 20:33    Post subject: Reply with quote

Orion9 wrote:
Первые плоды услилий Flasher?

Я не в курсе. Это его предложение?
Orion9 wrote:
С каким интервалом?

Да у меня один дополнительный поток на все. Просто добавляю туда новые функции:
Code:

Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\CloseNagScr.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\IcoNumber.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\MediaInfo.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\QuitExifTool.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\Restart.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SetTransparency.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchAssoc.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchColor.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchDrivesIcon.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchFilesIcon.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchIniSect.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLang.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLangUtils.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLangWCXPlg.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLangWFXPlg.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchLangWLXPlg.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchSound.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchTitleInfo.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\SwitchTypeHints.aucfg
Pragma Include %COMMANDER_PATH%\Plugins\wdx\Autorun\uCharDet.aucfg

RunThread ThreadWatch

Func ThreadWatch
   Local cpu, mls
   While 1
      ThreadWatchLang
      ThreadWatchQuitExifTool
      ThreadWatchTitleInfo
      ThreadWatchUtilsLang
      ThreadWatchWCXPlgLang
      ThreadWatchWFXPlgLang
      ThreadWatchWLXPlgLang
      # Отключаем пункты подменю "О сборке" меню "Запуск"
      # Disconnect items "About assembly" menu "Start"
      DisableMarkedMenuItems "█"

      cpu = GetCPUUsage()
      If cpu < 60 Then
         mls = 500
      ElseIf cpu < 90 Then
         mls = 700
      Else
         mls = 900
      EndIf
      Sleep(mls)
      # OutputDebugString("Autorun: AUTORUN_TCLANGFILE = " & AUTORUN_TCLANGFILE)
   Wend
EndFunc

# After this line all actions are performed when TC closing
Pragma AutorunFinalizeSection
# RegDelete("HKCU\Environment", "OIT_DATA_PATH")
ShellExec(COMMANDER_PATH & "\Utils\Everything\Everything.exe", "-exit")
ProcessTerminate("~/A /W", "exiftool.exe")
DllCall("kernel32.dll\DeleteFileW", "Wstr", TEMP & "\ET_DOCS_args.txt")
DllCall("kernel32.dll\DeleteFileW", "Wstr", TEMP & "\ET_DOCS_out.txt")
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 ... 231, 232, 233
Page 233 of 233

 
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