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: Wed May 06, 2026 22:48    Post subject: Reply with quote

Orion9 wrote:
Скорость - космос.

Наконец-то дошли руки до тестирования. Идея стала понятна. Только воплотить пока не удается. Вот накропал код на основе вашего:
Code:

Func ET1(FileName, FieldIndex, UnitIndex)
   Local ExifToolPID = 0, ExifToolOut = TEMP & "\exiftool_out.txt", ExifToolArgs = TEMP & "\exiftool_args.txt"

   If StrPos(FileGetAttr(FileName), "D") Then Return

   ExifToolPID = ProcessGetId("exiftool.exe")
   If ExifToolPID = 0 Then
      FileWrite(ExifToolArgs, "", "UTF-8 NOBOM")
      ShellExec /TT /SW_HIDE %util_ET% "-stay_open True -@ ""%ExifToolArgs%"""
   EndIf

   If FileExist(ExifToolOut) Then
      ShellExec /SW_HIDE %COMSPEC% '/c del /f /q "%gExifOut%"'
   EndIf

   Local sArgs = "-f" & auCRLF & _
      "-s3" & auCRLF & _
      "-m" & auCRLF & _
      "-q" & auCRLF & _
      "-q" & auCRLF & _
      "-Title" & auCRLF & _
      "-W+!" & auCRLF & ExifToolOut & auCRLF & FileName & auCRLF & "-execute" & auCRLF

   Local obj = BinaryFile(ExifToolArgs, "a")
   obj.WriteStr(sArgs, "", "UTF-8")
   Free(obj)

   ansi = "<time-out>"
   For i = 1 To 50
      If FileExist(ExifToolOut) Then
         ansi = FileRead(ExifToolOut)
         ShellExec /SW_HIDE %COMSPEC% '/c del /f /q "%ExifToolOut%"'
         Break
      EndIf
      Sleep(20)   # time-out
   Next

   Return ansi
EndFunc

Пока без всяких преобразований кривой кодировки. Только код вывода данных. Вывожу только одно поле Title. Работает также медленно, но это из-за того что здесь я применил ваш код задержки чтения из временного файла. Если убрать ненужные задержки скорость норм. Но вот беда. Вывод получается вот таким:

Слева как должно быть, справа как получается. Сначала я подумал, что кривой код. Но похоже код не успевает отработать. Ваша подсказка работает только для одного файла. А когда надо много обработать, вот такая фигня получается.
Может у вас есть какие-то идеи?
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group