Мне нужно декодировать папку, полную QR-кода из файлов изображений. После МНОГО исследований я наконец нашел библиотеку, которая работает на Windows. Не мой идеальный выбор (Zbar не будет устанавливаться на Strawberry PERL как "... не может включать zbar и zbar.h" ... или на мою учетную запись онлайн, где он говорит, что ему нужен работающий компилятор C:. Другие параметры не обновлялись годами или требуют, чтобы другие библиотеки, такие как DecodeQR, требовали OpenCV / компиляторы и т.д. Или libdecodeqr, который, я думаю, нуждается в компиляторе, а не в Windows / Perl)
Не волнуйтесь: вопрос скоро появится.
По крайней мере, Zbar для Windows, кажется, содержится в одной папке (portable: путь зависит), хотя я не знаю, поместил ли установщик файлы в реестр. Я должен добавить в этот момент, что - если на основе Windows - программа должна быть передана другим для использования. Если я могу заставить версию работать на сервере, не имеет значения, какие файлы мне нужно установить ... при условии, что они работают!)
Тем не мение ...
Это выполняется из VBScript. Мне удалось поместить файлы изображений в объект папки, через который я затем повторяю. Это мой код:
For Each f in PicFiles
Set out=objShell.Exec("C:\EventProc\Zbar\bin\zbarimg -D -q " &f)
tmp=out.StdOut.ReadAll
MsgBox(tmp)
Next
На языке Zbar флаги означают (-D: не отображать декодированное изображение штрих-кода) и (-q: отображать только декодированный вывод в окно консоли)
В настоящее время это расположение означает, что окно консоли мигает открытым и снова быстро закрывается в каждом цикле. (Оболочка не возвращает значение в Stdout, пока не закроется) Это может быть "довольно раздражающим" при просмотре более 200 файлов изображений!
Я попробовал "Выполнить", а не "Exec", но, конечно, это не возвращает никакого значения Stdout или переменной!
Я попытался добавить «, 0» после «& f» в попытке создать скрытое окно ... но потом а) либо он обрабатывает его как часть имени файла и не может отобразить -или- б) потому что он скрыт, никакое значение не получает В любом случае сообщается StdOut, строка tmp пуста.
Вот что я пытаюсь достичь:
Open a file, and get DetailsA
Read folder of images
For
"decodeQR" is code within image (ideally silently)
Next
Append "decodedQR |DetailsA" to an external file
** У меня нет проблем с открытием / записью файлов. Проблема в мигающем окне - если нет совершенно другой опции