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
Orion9



PostPosted: Sat Oct 03, 2026 11:39    Post subject: Reply with quote

AkulaBig
Вариант с файлами нормальный, но он не гарантирует полную надежность, к сожалению.

Дело не только в файле exiftool_out.txt, который не успевает удаляться, но чаще сама exiftool не успевает закрыть файл, поэтому FileRead возвращает пусто.

В справке Autorun есть пример создания временного файла, можно им воспользоваться, чтобы решить проблему с удалением.
Code:
Func GetTempFileName()
    Local tmpfile
    Do
      tmpfile = TEMP & "\temp" & Hex(Random(1, 0xFFFFFF, 1), 6) & ".tmp"
    Until Not FileExist(tmpfile)
    Return tmpfile
EndFunc

И поставить первую задержку перед FileRead, а не после, чтобы уменьшить шанс пустого выхлопа. Полный фрагмент будет выглядеть так
Code:
sExifOut  = GetTempFileName()       
Local sArgs = "-G0"   & auCRLF & _             
              "-lang" & auCRLF & _
              "ru"    & auCRLF & _                     
              "-W+!"  & auCRLF & gExifOut & auCRLF & FileName & auCRLF & "-execute" & auCRLF       
Static obj = BinaryFile(gExifArgs, "a")   
obj.WriteStr(sArgs, "", "UTF-8")
ansi = "<time-out>"
For i = 1 To 10
    Sleep(50)
    If FileExist(gExifOut) Then
       ansi = FileRead(gExifOut, 0, "UTF-8")
       DllCall("kernel32.dll\DeleteFileW", "Wstr", gExifOut)
       Break
    EndIf
Next
Return ansi

Это существенно увеличивает надежность, но вряд ли гарантирует ее полностью.

Чем больше задержки, тем выше надежность, но скорость при этом, конечно, теряется, хотя незначительно, на подказке это не сильно отразится.

У вас файлы для тестов есть? Можете на дропбокс скинуть? Я чуть позже отпишусь.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group