ฉันต้องถอดรหัสโฟลเดอร์ที่เต็มไปด้วยรหัส QR จากไฟล์ภาพ หลังจากการวิจัยจำนวนมากในที่สุดฉันก็พบว่ามี libary ที่ใช้งานได้บน Windows ไม่ใช่ตัวเลือกในอุดมคติของฉัน (Zbar จะไม่ติดตั้งบน Strawberry PERL เนื่องจาก "... ไม่สามารถรวม zbar และ zbar.h" ... หรือในบัญชีออนไลน์ของฉันซึ่งมันบอกว่ามันต้องใช้ C: คอมไพเลอร์ตัวเลือกอื่น ๆ ไม่ได้รับการอัปเดตในปีที่ผ่านมาหรือต้องการไลบรารีอื่น ๆ เช่น DecodeQR ต้องการ OpenCV / คอมไพเลอร์ ฯลฯ หรือ libdecodeqr ซึ่งฉันคิดว่าต้องการคอมไพเลอร์มากกว่า Windows / Perl)
ไม่ต้องกังวล: คำถามจะมาในอีกสักครู่
อย่างน้อยดูเหมือนว่า Zbar สำหรับ Windows จะอยู่ในโฟลเดอร์เดียว (พกพา: ขึ้นอยู่กับพา ธ ) แต่ฉันไม่รู้ว่าตัวติดตั้งวางไฟล์ไว้ในรีจิสตรีหรือไม่ ฉันควรเพิ่ม ณ จุดนี้ว่า - ถ้าใช้ 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 parlance ค่าสถานะหมายถึง (-D: อย่าแสดงอิมเมจบาร์โค้ดที่ถอดรหัส) และ (-q: แสดงเฉพาะการถอดรหัสเอาต์พุตไปยังหน้าต่างคอนโซล)
ในปัจจุบันข้อตกลงนี้หมายความว่าหน้าต่างคอนโซลจะกะพริบเปิดและปิดอย่างรวดเร็วอีกครั้งในแต่ละลูป (เปลือกไม่ปล่อยค่าให้ Stdout จนกว่าจะปิด) ซึ่งอาจเป็น "ค่อนข้างน่ารำคาญ" เมื่อผ่านไฟล์ภาพ 200+ !!
ฉันลอง "Run" แทน "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
** ฉันไม่มีปัญหาในการเปิด / เขียนไฟล์ ปัญหาคือหน้าต่างที่กระพริบ - ยกเว้นในกรณีที่มีตัวเลือกแตกต่างไปจากเดิมอย่างสิ้นเชิง