Orion9

|
Posted: Sat May 16, 2026 13:04 Post subject: |
|
|
| AkulaBig wrote: | | Ненужный вам ПИД |
Не мне ненужный, а скрипту. Разница хоть небольшая, но она все же есть )
С точки зрения скрипта, работа происходит с двумя файлами, что происходит с процессом, ему неинтересно. От него требуется только записать в один файл и ждать результата для второго, на этом все.
 Hidden text | Code: | 'Option Explicit
Dim fso, argFile, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
argFile = fso.GetSpecialFolder(2) & "\exiftool_args.txt"
outFile = fso.GetSpecialFolder(2) & "\exiftool_out.txt"
'content = GetExifTag(filename, "ImageSize")
content = GetExifTag(filename, "FileName")
Function GetExifTag(fileName, tagName)
Dim stream, result
'If fso.FileExists(outFile) Then fso.DeleteFile(outFile)
Set stream = fso.OpenTextFile(argFile, 8) ' 8 = Append
stream.WriteLine "-s3"
'stream.WriteLine "-" & tagName
stream.WriteLine "-W+!"
stream.WriteLine outFile
stream.WriteLine fileName
stream.WriteLine "-execute"
stream.Close
Dim timeout
timeout = 0
Do While Not fso.FileExists(outFile) And timeout < 5000
'WScript.Sleep(10)
timeout = timeout + 1
Loop
If fso.FileExists(outFile) Then
Set stream = fso.OpenTextFile(outFile, 1)
If Not stream.AtEndOfStream Then
result = Trim(stream.ReadAll)
Else
result = "Empty"
End If
stream.Close
GetExifTag = result
Else
GetExifTag = "Error: Timeout"
End If
End Function |
А как запустить Exiftool с опцией -stay_open, это вопрос другой. Либо отдельным тригером (как у меня по Alt+F12), либо проверкой существования процесса. Но оно того не стоит. Как видите, мне пришлось закомментировать строку удаления файла и строку WScript.Sleep(10) из-за неприятных ограничений работы через СОМ. Можно искать разные решения, но это будет костыль на костыле. WinScriptAdv сам по себе костыль. Городить костыль на костыле нет смысла. Для нормальной работы нужен отдельный wdx, который будет напрямую взаимодействовать с exiftool.exe. Тогда и скорость будет и качество.
Решение на Autorun, конечно, красивое. Но есть проблемы с наборами колонок. Не зря не получется посмотреть данные плагина через Wdx Guide и uwdx. Придется ждать Loopback, чтобы получить от него разъяснения. |
|