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 

[wdx] WinScript Advanced Content Plugin (x86\x64) (new)
Goto page Previous  1, 2, 3 ... 14, 15, 16 ... 18, 19, 20  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: 538

Post (Separately) Posted: Thu Mar 14, 2024 20:16    Post subject: Reply with quote

Quote:
Может кто-нибудь подтвердить/опровергнуть такое поведение?

Уже давно не пользовался Windows 7. Могу только добавить, что в 11-ой такой проблемы нет. Все работает ровно.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Thu Oct 31, 2024 06:35    Post subject: Reply with quote

del

Last edited by AkulaBig on Thu Oct 31, 2024 10:19; edited 1 time in total
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 309

Post (Separately) Posted: Thu Oct 31, 2024 09:17    Post subject: Reply with quote

AkulaBig
Не совсем понятно зачем писать свой скрипт, если есть быстрый плагин TCMediaInfo.
Из своего опыта скажу: писал разные VBS для WinScriptAdv, которые где-то дублируют возможности плагинов, но все они были медленнее заточенных плагинов, но оно и понятно, сколько этапов проходит от запроса до вывода информации:
TC -> WinscriptADV -> Запуск интерпретатора -> работа самого скрипта -> Запуск сторонней библиотеки (например, MediaInfo) -> WinscriptADV -> TC.
И так на каждый файл. Длинная цепочка получается, потому и медленно.
А чем не устраивает TCMediaInfo?
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Thu Oct 31, 2024 10:19    Post subject: Reply with quote

Раз не нужен, удалил. Это проще сделать, чем что-то объяснять таким как вы.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Thu Oct 31, 2024 23:24    Post subject: Reply with quote

AkulaBig
Не, ну любопытство - это номально же Smile, я и сам спрашиваю иногда на предмет использования у себя или замены используемого, а звучать может не так однозначно...

Так понял, возникла проблема с запуском скрипта AutoIt из скрипта на VBScript? Возможно, в скрипт, написанный для плагина, не был добавлен необходимый для запуска из vbs-скрипта выхлоп - не хватает ConsoleWrite, типа как тут.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Fri Nov 01, 2024 00:05    Post subject: Reply with quote

Возможно и из-за ConsoleWrite. Но еще есть проблема из-за filename. В ahk так, а в au3 $filename. Но знак доллара поставить не дает, сообщает об ошибке. Не понятно, что с этим делать.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Fri Nov 01, 2024 00:45    Post subject: Reply with quote

Если скрипт AutoIt запускать из vbs-скрипта, то первый должен читать имя файла из $CmdLine[1] и писать результат в ConsoleWrite, а второй выглядеть как-то так
Code:
content = execStdOut("""path-to-AutoIt3.exe"" ""path-to-script.au3"" """ & filename & """")

Function execStdOut(cmd)
   Dim goWSH : Set goWSH = CreateObject("WScript.Shell")
   Dim aRet: Set aRet = goWSH.exec(cmd)
   execStdOut = aRet.StdOut.ReadAll()
End Function
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 309

Post (Separately) Posted: Fri Nov 01, 2024 01:13    Post subject: Reply with quote

AkulaBig
Не думал, что мои слова вызовут такую реакцию. Прошу прощения если что не так. И согласен со Skif_off про любопытство. Объяснять всегда надо, особенно таким как я Wink
Для себя тоже новое узнал, как вывод из stdout записать в переменную, до этого всегда писал во временный файл в %temp%, и оттуда считывал.
Skif_off
Спасибо за наводку!
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Fri Nov 01, 2024 15:30    Post subject: Reply with quote

Skif_off wrote:
писать результат в ConsoleWrite

Я сейчас занялся запуском MediaInfo CLI из vbs. Там тоже одна из проблем вывод результата в плагин. Но до этого мне еще далеко. Сейчас пока добился только вывода хотя-бы одного результата в самом скрипте. Теперь думаю как-бы обойтись без промежуточного файла для множества данных.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Fri Nov 01, 2024 17:40    Post subject: Reply with quote

AkulaBig
Вариантов тут немного, проще всего функцией Split разрезать.
Если из скрипта AutoIt, наверное, лучше не несколько раз вызывать ConsoleWrite и резать строки, а отдать одной строкой.

Наверное, уже заметили у MediaInfo CLI особенность, можно за один раз вытащить несколько значений, группируя их (General, Video и т.д.), типа
Code:
Dim A, O
O = execStdOut("""path-to-mediainfo.exe"" --Inform=""Video;%Width%|%Height%|%BitRate%"" """ & filename & """")
A = Split(O, "|")
content = A(0)
content1 = A(1)
content2 = CLng(A(2)) / 1000

(execStdOut() парой сообщений выше)
AkulaBig wrote:
Теперь думаю как-бы обойтись без промежуточного файла для множества данных.

Зависит от данных, которые вытаскиваете, и от того, как.


Last edited by Skif_off on Sat Nov 02, 2024 02:15; edited 1 time in total
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Fri Nov 01, 2024 18:21    Post subject: Reply with quote

Хотелос-бы в массив закинуть весь список и из него брать значения. То-есть как у вас. Но не прописывать каждое значение для --Inform, а применить ключ -f. Надо проверить, будет работать с вашим кодом.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Fri Nov 01, 2024 18:47    Post subject: Reply with quote

AkulaBig wrote:
применить ключ -f

Вывод может содержать данные, которые не нужны, но на их получение уйдёт время. К тому же выхлоп может различаться в зависимости от формата и/или версии MedaInfo.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Fri Nov 01, 2024 20:48    Post subject: Reply with quote

Skif_off wrote:
выхлоп может различаться в зависимости от формата и/или версии MedaInfo.

Такое практически невозможно. Тогда и TCMediaInfo неправильно будет работать. Это тоже самое, что мелко-мягкие написали-бы Винду с нуля. Убрав поддержку старого говнокода. Это очень заманчивая перспектива, но нереальная. Такое только юниксоиды практикуют.
Skif_off wrote:

O = execStdOut("""path-to-mediainfo.exe"" --Inform=""Video;%Width%|%Height%|%BitRate%"" """ & filename & """")

Я правильно понимаю, что вы выкладываете алгоритм, а не рабочее решение? Или у вас этот код работает? Я-то уже обрадовался, что так можно писать. Но у меня не работает. А вот дальше начинается интересная история. Если этот код только через Run()\Exec() можно выполнить, то будет проблематично завернуть его в execStdOut.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1244

Post (Separately) Posted: Fri Nov 01, 2024 22:29    Post subject: Reply with quote

AkulaBig wrote:
Такое практически невозможно. Тогда и TCMediaInfo неправильно будет работать.

Думаю, TCMediaInfo запрашивает то, что прописано у него в конфиге, без -f или чего-то подобного.
По количеству выводимой с -f инфы различия будут, сравните файлы разных форматов.
AkulaBig wrote:
Я правильно понимаю, что вы выкладываете алгоритм, а не рабочее решение? Или у вас этот код работает? Я-то уже обрадовался, что так можно писать. Но у меня не работает.

С Lua такое проворачивал, проверил сейчас с VBScript, дописав
Code:
WScript.Echo O

- работает, но почему-то мелькает окно консоли (непонятно, вроде как cli-версия MediaInfo).

По ходу, нужно либо уточнять параметры MediaInfo на предмет что там есть полезного, либо заворачивать в Run с --LogFile= (скрывая окно и читая файл), либо загуглить, какие есть решения VBScript + MediaInfo.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 108

Post (Separately) Posted: Fri Nov 01, 2024 22:31    Post subject: Reply with quote

Все дело, как всегда, было в кавычках. То-есть без cmd /C запускается, но окно консоли мелькает.
Поправленный вариант не выкладываю, так как есть косяки. Почему-то колонка Продолжительность на некоторых файлах ругается Индекс выходи за пределы диапазона '[number: 1]'

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

Skif_off wrote:
работает, но почему-то мелькает окно консоли

У меня тоже.
Skif_off wrote:
заворачивать в Run с --LogFile= (скрывая окно и читая файл)

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

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

С Продолжительностью все ясно. Не в ней дело. Почему-то А(0) ругается на любой параметр, если в файле данных нет, видимо. Возможно Сплит криво работает.
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 ... 14, 15, 16 ... 18, 19, 20  Next
Page 15 of 20

 
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