Мне нужно декодировать папку, полную 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" после "& amp; 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
** У меня нет проблем с открытием / записью файлов. Проблема в мигающем окне - если нет совершенно другой опции
источник