0

我最近发现了这个名为 zbarcam 的应用程序,它是一个命令提示符应用程序,可以从我的网络摄像头读取 QR 码。当我从命令提示符运行它时效果很好,它会在命令提示符中显示所有二维码文本。

现在我正在尝试将其功能集成到我的 VB.Net 项目中,但是,虽然我可以使用 StartInfo 加载应用程序,但我无法读取命令提示符中显示的二维码。

这是我正在使用的代码:

    Dim myprocess As New Process

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    With myprocess
      .StartInfo.FileName = "C:\Progra~2\ZBar\bin\zbarcam"
      .StartInfo.RedirectStandardOutput = True
      .StartInfo.UseShellExecute = False
      .Start()
    End With
    Timer1.Enabled = True
    Timer1.Start()
  End Sub

  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    resultsTextBox.Text = myprocess.StandardOutput.ReadToEnd
  End Sub

我想要做的是每秒检查一次命令提示符中文本的更改。但是,当我运行此代码时,命令提示符显示为黑色,当我将代码移到相机前时,尽管它检测到它(我可以在视频预览中看到 QR 码周围的绿色框),文本不显示在命令提示符中。

如果我将“ .StartInfo.UseShellExecute ”设置为 True 并注释“ .StartInfo.RedirectStandardOutput = True ”行并禁用计时器,则二维码开始显示在命令提示符中,但我无法阅读它们!

解决此问题的最佳方法是什么?理想情况下,我希望仅在有更改时从命令提示符读取,但如果无法做到这一点,那么下一个最好的方法是每秒轮询一次命令提示符并检查更改。

4

0 回答 0