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 ... , 236, 237, 238  Next
 
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: 1248

Post (Separately) Posted: Tue Sep 01, 2026 23:27    Post subject: Reply with quote

AkulaBig wrote:
Исключительно по Авторан.

Я бы рад, но ситуация сейчас напряжная. Сам не ожидал, что так получится, но ничего не подклаешь, приходится теперь мириться.

А что там в двух словах?
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Wed Sep 02, 2026 11:03    Post subject: Reply with quote

Orion9
Понятно. Будем ждать, когда ваша ситуация успокоится.
Я изучил ваш код и сделал функцию чтения данных из ExifTool через Вин АПИ. Мы-же обсуждали, что ShellExec и т.д. в ТС64 неправильно работают. И оказалось, что вызов через DllCall работает также, то есть не функции вывода виноваты. При этом с MediaInfo, где мы используем dll, все норм.
Хотел обсудить с вами эту тему.
И еще одну, но там надо все-же практическое решение. Так что не буду озвучивать.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Thu Sep 03, 2026 23:46    Post subject: Reply with quote

AkulaBig wrote:
Мы-же обсуждали, что ShellExec и т.д.

Я уже ничего не помню. Но вообще-то тот код делал ИИ, а я всего лишь перевел его в Autorun.
AkulaBig wrote:
Хотел обсудить с вами эту тему.

А с ИИ пробовали? От него будет больше пользы, чем от меня Smile
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Fri Sep 04, 2026 05:28    Post subject: Reply with quote

Orion9 wrote:
А с ИИ пробовали? От него будет больше пользы, чем от меня

У меня, как у вас не получается. Кто вам такие портянки ответов выдает, не знаю. Мне Алиса краткие ответы дает и все.
Хочется понять, почему с MediaInfo DllCall работает нормально, а с ExifTool - нет. Понятно, что одна длл, а вторая экзе. Но неужели нельзя как-то решить этот вопрос без сансея?
Есть еще более локальный вопрос. Сделал через ET и всплывающие подсказки к файлам по типу MI. И вот тут скорость работы ET очень заметна. При передвижении мыши функция не успевает отработать и вешает ТС. Вот мне думка в голову пришла. В своих плагинах я делаю защиту от быстрого нажатия клавиш стрелок. А для подсказок над файлами можно как-то проверить, что функция выполнена до конца? Может ProcessWait в этом поможет? Или какой-нить код написать?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Sat Sep 05, 2026 00:13    Post subject: Reply with quote

AkulaBig wrote:
У меня, как у вас не получается.

Если у вас не работает режим ИИ в google.com, значит его блокирует провайдер или какие-то другие проблемы. Попробуйте для начала сменить адреса DNS-серверов на эти. Лучше используйте DoH в браузере или в системе (Windows 11 это позволяет сделать). Это проксируемый DNS от Comss.ru, который позволяет обойти геоблок многих сервисов, включая ИИ:

 Hidden text

Или используйте другие методы обхода блокировки.

AkulaBig wrote:
Но неужели нельзя как-то решить этот вопрос без сансея?

На сенсея расчитывать не стоит. Я же говорю, его Хлебникова забрала прямо в упаковке, и выбраться оттуда - ой как сложно (знающие люди говорят).

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

Да, все эти фризы - очень слабое место ТС, особенно при работе с сетью, (раздражает жестко), но Гислер вряд ли это исправит, если только не подключит к работе ИИ.
AkulaBig wrote:
А для подсказок над файлами можно как-то проверить, что функция выполнена до конца?

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



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Sun Sep 06, 2026 14:06    Post subject: Reply with quote

AkulaBig
Ну что, заработал у вас болван?

Я у него спросил, кстати:

 Hidden text

Решение с потоками рабочее. Например, была функция, которая выводит сведения о кодировке в кастомное поле
Code:
Func EncDetect(FileName, FieldIndex, UnitIndex)
    Local pipe
    Static exe_tool = COMMANDER_PATH & "\Ini\Tools\uchardet.exe"
    ProcessExecGetOutput pipe %exe_tool% '"%FileName%"'
    Return pipe
EndFunc

Если файл с текстом большой (>1 Гб), то это заметно вешает ТС при отображении подсказки. Но если переделать в поток, то фризов нет - интерфейс продолжает быть полностью доступным для работы

Code:
Func EncDetect(FileName, FieldIndex, UnitIndex)
    Global gEncDetect = 1, gEncPipe
    RunThread("ThreadEncDetect", FileName, FieldIndex, UnitIndex)
    While gEncDetect
        Sleep(50)
    Wend
    Return gEncPipe
EndFunc

Func ThreadEncDetect(FileName, FieldIndex, UnitIndex)
    Static exe_tool = COMMANDER_PATH & "\Ini\Tools\uchardet.exe"
    ProcessExecGetOutput gEncPipe %exe_tool% '"%FileName%"'
    gEncDetect = 0
EndFunc

Это очень грубый пример, но сама идея рабочая.

Что касается других плагинов.

Да, может быть такая строчка в подсказке
Code:
21exts=>Текстовые файлы
21fields=Тип: [=encinfo.Type]\nКодировка: [=encinfo.Encoding]\nКодировка:  [=autorun.Encoding]

Т.е. помимо кода Авторан, выводятся данные из других плагинов (в данном случае EncInfo). Их тоже можно завернуть в Авторан при помощи объекта Plugin.

Можно сделать более продвинутый код, чтобы подсказка не отображалась (возвращала "") при смене позиции или по таймауту, но даже так уже гораздо лучше, чем наблюдать эти чудовищные фризы. Вообще удивляет, что маестро тратит время на всякую ерунду типа встроенного 7z, и ничего не делает для более комфортного существования в самом ТС.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Mon Sep 07, 2026 06:48    Post subject: Reply with quote

Orion9 wrote:
Ну что, заработал у вас болван?

Он работает, но не как у вас.
Вот я переделал из вашего кода для тестирования всех вариантов обработки ExifTool, вариант с CallDll:
 Hidden text

Ни одного использования ShellExec и т.д. MediaInfo с таким алгоритмом работает прекрасно. А ExifTool под ТС32 работает правильно, а под ТС64 сначала обрабатывает все файлы, а потом выводит данные. Что создает огромную задержку. Может у вас есть идеи, как исправить это поведение? Ну и еще как-бы сделать, чтобы отслеживалось полное выполнение скрипта?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Mon Sep 07, 2026 10:57    Post subject: Reply with quote

AkulaBig wrote:
Он работает, но не как у вас.

А как он у вас работает, не понимаю.
AkulaBig wrote:
а под ТС64 сначала обрабатывает все файлы, а потом выводит данные. Что создает огромную задержку.

А, теперь понял о чем речь (сорри, я реально не понял этого из первого сообщения).

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

Т.ч. вы правы: без сенсея тут никак. Проблема лежит в самой реализации Pragma AutorunPluginFields, и только он знает ее корни.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Mon Sep 07, 2026 17:36    Post subject: Reply with quote

AkulaBig
Нашел я Loopback'а — тот, что с бородкой на 3.40:
Клик
Не похоже, чтобы он хотел вернуться (особенно на 4.57). Но что поделаешь: Гислер тоже когда-то все бросит и уйдет в горы (в последний путь программиста ламы, так сказать).

Я тут с удивлением обнаружил, что скрипт, который я делал без малого 2,5 года назад еще работает. Убрал все лишнее, получилась удобная кнопка.

Но можно использовать этот скрипт и в Autorun. Тогда стиль подсказки полность сохранится с тоталовским, т.е. с темной темой будет темная подсказка. Вызов несложный, через ProcessExecGetOutput:

Code:
RegisterCommand 60050 "MeteoReport"

Func MeteoReport()
    # путь к приложению
    Local path = COMMANDER_PATH & "\Scripts\Ahk"

    # путь к скрипту   
    Local script = COMMANDER_PATH & "\Ini\Title\Meteo.ahk"

    # параметры вызова
    Local params = '"' & script & '" ' & "-gps 55.75 37.62 Москва"
   
    # получение данных
    Local stdout = ProcessExecGetOutput("~/C:1251", "AutoHotkey32.exe", params, path)
   
    # отображение подсказки
    ShowHint(stdout)
EndFunc
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Mon Sep 07, 2026 22:38    Post subject: Reply with quote

Orion9 wrote:
Проблема лежит в самой реализации Pragma AutorunPluginFields

Но ведь MediaInfo прекрасно работает. Но MediaInfo dll, а ExifTool exe. Получается проблема именно для exe?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Tue Sep 08, 2026 00:38    Post subject: Reply with quote

AkulaBig wrote:
Но ведь MediaInfo прекрасно работает.

Разве? По-моему, так же все было. В ТСх64 кастомное поле созданное в Авторан в режиме просмотра колонок тормозит.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Tue Sep 08, 2026 05:37    Post subject: Reply with quote

Orion9 wrote:
По-моему, так же все было.

Нет. MediaInfo в виде dll у меня прекрасно работает в ТС64.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Tue Sep 08, 2026 12:06    Post subject: Reply with quote

AkulaBig wrote:
MediaInfo в виде dll у меня прекрасно работает в ТС64.

MediaInfo просто быстрее выводит, поэтому кажется не заметно. На самом деле проблема давняя, еще полтора года назад писал о ней:

Quote:
Но вот заметил, что в ТС х64 наполнение кастомной колонки как-то не так происходит, как в 32-битном Тотале. Такое ощущение, что он сразу всю страницу пытается считать перед отображением. В 32-битном ТС работает глаже и приятнее.

Просто Loopback не обратил внимания, наверное. А я не стал настаивать и репортить повторно, отчасти потому, что практически не пользуюсь версией TCx64.

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



Joined: 03 Dec 2008
Posts: 591

Post (Separately) Posted: Tue Sep 08, 2026 17:08    Post subject: Reply with quote

Orion9 wrote:
MediaInfo просто быстрее выводит

Ох, для этого надо городить тестовый скрипт. Вроде без сансея смысла нет этим заниматься. Так-то я могу подобрать файлы, которые MI и ET будут обрабатываться сопоставимое время. Будет время, может и сделаю тестовые колонки пользователя. Сейчас у меня MI через TCMediaInfo работает, а ET через WinScriptsAdv.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1248

Post (Separately) Posted: Wed Sep 09, 2026 14:16    Post subject: Reply with quote

AkulaBig wrote:
Будет время, может и сделаю тестовые колонки пользователя.

Делалось уже, судя по потому, что у меня остался в списке этот набор
Code:
Widths32=80,30,34,45,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

MediaInfo медленнее работает с webm форматом, особенно если это 2К-4К. Но можете просто поставить Sleep в функцию Mediainfo, тогда сразу будет видно, что в ТС х32 записи на панели выводятся построчно, а в ТС х64 постранично (т.е. обновляется сразу вся панель с задержкой).

Кстати, концепция с заворачиванием объекта Plugin в отдельный поток тоже рабочая. Я проверил на примере TCMediaInfo.

Допустим, есть подсказка, выводящая данные из плагина:

Code:
15exts=>Видео
15fields=Время: [=tcmediainfo.Duration]\nВидео: [=tcmediainfo.All video as string]\nАудио: [=tcmediainfo.All audio as string]\n[="Язык аудио: "tcmediainfo.Audio Language]\n[="Субтитры: "tcmediainfo.Text Streams]\n[="Язык субтитров: "tcmediainfo.Subtitles]


Заворачиваем в Autorun

Code:
23exts=>Видео
23fields=[=autorun.M1]\n[=autorun.M2]\n[=autorun.M3]\n[=autorun.M4]\n[=autorun.M5]\n[=autorun.M6]

Лучше было бы так
Code:
23fields=Время: [=autorun.M1]\nВидео: [=autorun.M2]\nАудио: [=autorun.M3]\n[="Язык аудио: "autorun.M4]\n["Субтитры: "=autorun.M5]\n[="Язык субтитров: "autorun.M6]

Но Autorun почему-то не возвращает пустое значение, чтобы тотал его принял и пропустил строку. Не стал разбираться, но из-за этого пришлось немного усложнить скрипт, который иначе был бы очень простой
 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 ... , 236, 237, 238  Next
Page 237 of 238

 
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