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 

Single Post  Topic: Autorun 
Author Message
AkulaBig



PostPosted: Thu Apr 24, 2025 21:38    Post subject: Reply with quote

Orion9 wrote:
"BigHint", которое я давно уже поменял на "JoinHint"

Это я заметил сразу. Не в этом дело.
Orion9 wrote:
чтобы сохранить старый хинт с полями плагина TCMediaInfo как хинт по умолчанию

Скорей всего у всех так. Но мне вариант без доп клавиш больше нравится.
Orion9 wrote:
P.S. Не знаю, почему у вам CapsLock не работает. Только что еще раз проверил - у меня всё норм.

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

Вот ведь обидно как. Ведь для CLI я в свое время разобрался и написал:
Code:

"MediaInfo.exe" "--Language=file://ru.csv" "--Complete=0" "bestcity.mp3" --LogFile=Complete0.txt"

А тут не догадался, что надо полный путь прописать. Похоже у меня там библиотека и язык лежали рядом со скриптом. А я как только уже не попробовал. Этот-то вариант не заработал сразу.
Orion9 wrote:
"d" нужно отдельно парсить.

Я это уже понял. Так как сейчас тестовые файлы на С кинул для удобства тестирования. Сейчас эти шероховатости устраню, надо будет решать с крякозябрами. В au3 я эту проблему решил, посмотрим, можно-ли здесь это сделать.
Orion9 wrote:
Как я понял, у каждого файла свои. В этом вся и сложность задачи. Без шаблонов и фильтров источников не обойтись.

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

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

Язык прописал:
Code:

Local lng_MI ="file://" & COMMANDER_PATH & "\Utilities\MediaInfo\ru.csv"
DllCall(sLib & '\MediaInfo_Option', 'ptr', hMI, "wstr", "Language", "wstr", lng_MI, "wstr")


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

Вот причесанный код. Язык добавлен. Парсинг поправлен:
Code:

Func JoinHint(FileName, FieldIndex, UnitIndex)
   Static pipe
   Static sLib = "MediaInfo" & (auX64 ? "" : "_i386") & ".dll"
   Static hLib = DllCall("LoadLibrary", _
         "wstr", COMMANDER_PATH & "\Utilities\MediaInfo\" & sLib, _
         "ptr")
   If hLib = 0 Then
      Return "Error LoadLibrary " & sLib
   EndIf

   If FieldIndex = 1 Then
      Local hMI = DllCall(sLib & "\MediaInfo_New", "ptr")
      If hMI = 0 Then
         Return "MediaInfo_New returned 0"
      Endif

      Local lng_MI ="file://" & COMMANDER_PATH & "\Utilities\MediaInfo\ru.csv"
      DllCall(sLib & "\MediaInfo_Option", _
         "ptr", hMI, "wstr", "Language", "wstr", lng_MI, _
         "wstr")
   
      If DllCall(sLib & "\MediaInfo_Open", _
         "ptr", hMI, "wstr", FileName, _
         "uint") <> 1 Then
         DllCall(sLib & "\MediaInfo_Delete", "ptr", hMI)
         Return "MediaInfo_Open failed to open file " &  FileName
      EndIf

      DllCall(sLib & "\MediaInfo_Option", _
         "ptr", hMI, "wstr", "Complete", "wstr", "0", _
         "wstr")
      pipe = DllCall(sLib & "\MediaInfo_Inform", _
         "ptr", hMI, "uint", 0, _
         "wstr")
   
      DllCall(sLib & "\MediaInfo_Delete", "ptr", hMI)
   Endif

   Return TrimSpaces(StrPart(pipe, auLF, FieldIndex))
EndFunc

Func TrimSpaces(String)
Local a, b
   If Not StrPos(String, ":") Then Return String

   a = StrPart(String, ": ", 1)
   b = StrPart(String, ": ", 2)

   Return StrTrim(a) & ": " & StrTrim(b)
EndFunc
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group