View previous topic :: View next topic |
Author |
Message |
Orion9
Joined: 01 Jan 2024 Posts: 538
|
(Separately) Posted: Thu Mar 14, 2024 20:16 Post subject: |
|
|
Quote: | Может кто-нибудь подтвердить/опровергнуть такое поведение? |
Уже давно не пользовался Windows 7. Могу только добавить, что в 11-ой такой проблемы нет. Все работает ровно. |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Thu Oct 31, 2024 06:35 Post subject: |
|
|
del
Last edited by AkulaBig on Thu Oct 31, 2024 10:19; edited 1 time in total |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 309
|
(Separately) Posted: Thu Oct 31, 2024 09:17 Post subject: |
|
|
AkulaBig
Не совсем понятно зачем писать свой скрипт, если есть быстрый плагин TCMediaInfo.
Из своего опыта скажу: писал разные VBS для WinScriptAdv, которые где-то дублируют возможности плагинов, но все они были медленнее заточенных плагинов, но оно и понятно, сколько этапов проходит от запроса до вывода информации:
TC -> WinscriptADV -> Запуск интерпретатора -> работа самого скрипта -> Запуск сторонней библиотеки (например, MediaInfo) -> WinscriptADV -> TC.
И так на каждый файл. Длинная цепочка получается, потому и медленно.
А чем не устраивает TCMediaInfo? |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Thu Oct 31, 2024 10:19 Post subject: |
|
|
Раз не нужен, удалил. Это проще сделать, чем что-то объяснять таким как вы. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Thu Oct 31, 2024 23:24 Post subject: |
|
|
AkulaBig
Не, ну любопытство - это номально же , я и сам спрашиваю иногда на предмет использования у себя или замены используемого, а звучать может не так однозначно...
Так понял, возникла проблема с запуском скрипта AutoIt из скрипта на VBScript? Возможно, в скрипт, написанный для плагина, не был добавлен необходимый для запуска из vbs-скрипта выхлоп - не хватает ConsoleWrite, типа как тут. |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Fri Nov 01, 2024 00:05 Post subject: |
|
|
Возможно и из-за ConsoleWrite. Но еще есть проблема из-за filename. В ahk так, а в au3 $filename. Но знак доллара поставить не дает, сообщает об ошибке. Не понятно, что с этим делать. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Nov 01, 2024 00:45 Post subject: |
|
|
Если скрипт 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 |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 309
|
(Separately) Posted: Fri Nov 01, 2024 01:13 Post subject: |
|
|
AkulaBig
Не думал, что мои слова вызовут такую реакцию. Прошу прощения если что не так. И согласен со Skif_off про любопытство. Объяснять всегда надо, особенно таким как я
Для себя тоже новое узнал, как вывод из stdout записать в переменную, до этого всегда писал во временный файл в %temp%, и оттуда считывал.
Skif_off
Спасибо за наводку! |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Fri Nov 01, 2024 15:30 Post subject: |
|
|
Skif_off wrote: | писать результат в ConsoleWrite |
Я сейчас занялся запуском MediaInfo CLI из vbs. Там тоже одна из проблем вывод результата в плагин. Но до этого мне еще далеко. Сейчас пока добился только вывода хотя-бы одного результата в самом скрипте. Теперь думаю как-бы обойтись без промежуточного файла для множества данных. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Nov 01, 2024 17:40 Post subject: |
|
|
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 |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Fri Nov 01, 2024 18:21 Post subject: |
|
|
Хотелос-бы в массив закинуть весь список и из него брать значения. То-есть как у вас. Но не прописывать каждое значение для --Inform, а применить ключ -f. Надо проверить, будет работать с вашим кодом. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Nov 01, 2024 18:47 Post subject: |
|
|
AkulaBig wrote: | применить ключ -f |
Вывод может содержать данные, которые не нужны, но на их получение уйдёт время. К тому же выхлоп может различаться в зависимости от формата и/или версии MedaInfo. |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Fri Nov 01, 2024 20:48 Post subject: |
|
|
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 |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Nov 01, 2024 22:29 Post subject: |
|
|
AkulaBig wrote: | Такое практически невозможно. Тогда и TCMediaInfo неправильно будет работать. |
Думаю, TCMediaInfo запрашивает то, что прописано у него в конфиге, без -f или чего-то подобного.
По количеству выводимой с -f инфы различия будут, сравните файлы разных форматов.
AkulaBig wrote: | Я правильно понимаю, что вы выкладываете алгоритм, а не рабочее решение? Или у вас этот код работает? Я-то уже обрадовался, что так можно писать. Но у меня не работает. |
С Lua такое проворачивал, проверил сейчас с VBScript, дописав
- работает, но почему-то мелькает окно консоли (непонятно, вроде как cli-версия MediaInfo).
По ходу, нужно либо уточнять параметры MediaInfo на предмет что там есть полезного, либо заворачивать в Run с --LogFile= (скрывая окно и читая файл), либо загуглить, какие есть решения VBScript + MediaInfo. |
|
Back to top |
|
|
AkulaBig
Joined: 03 Dec 2008 Posts: 108
|
(Separately) Posted: Fri Nov 01, 2024 22:31 Post subject: |
|
|
Все дело, как всегда, было в кавычках. То-есть без cmd /C запускается, но окно консоли мелькает.
Поправленный вариант не выкладываю, так как есть косяки. Почему-то колонка Продолжительность на некоторых файлах ругается Индекс выходи за пределы диапазона '[number: 1]'
Добавлено спустя 5 минут:
Skif_off wrote: | работает, но почему-то мелькает окно консоли |
У меня тоже.
Skif_off wrote: | заворачивать в Run с --LogFile= (скрывая окно и читая файл)
|
Такой вариант есть у меня. Посмотрю, что лучше сделать. Решить-бы проблему с Продолжительностью.
Добавлено спустя 29 минут:
С Продолжительностью все ясно. Не в ней дело. Почему-то А(0) ругается на любой параметр, если в файле данных нет, видимо. Возможно Сплит криво работает. |
|
Back to top |
|
|
|
|
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
|