0

最近、ウェブカメラから QR コードを読み取るコマンド プロンプト アプリケーションである zbarcam というアプリケーションを見つけました。コマンド プロンプトから実行するとうまく機能し、コマンド プロンプトにすべての QR コード テキストが表示されます。

現在、その機能を VB.Net プロジェクトに統合しようとしていますが、StartInfo を使用してアプリケーションをロードできますが、コマンド プロンプトに表示される QR コードを読み取ることができません。

私が使用しているコードは次のとおりです。

    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

私がやりたいことは、コマンド プロンプトのテキストの変更を 1 秒ごとにチェックすることです。ただし、このコードを実行すると、コマンド プロンプトが黒く表示され、コードをカメラの前に移動すると、コードは検出されますが (ビデオ プレビューで QR コードの周りに緑色のボックスが表示されます)、テキストがコマンドプロンプトに表示されません。

" .StartInfo.UseShellExecute " を Trueに設定し、" .StartInfo.RedirectStandardOutput = True "という行にコメントを付けてタイマーを無効にすると、コマンド プロンプトに qr コードが表示され始めますが、読み取ることができません!

これについて最善の方法は何ですか?理想的には、変更がある場合にのみコマンド プロンプトから読み取りたいのですが、これができない場合は、コマンド プロンプトを 1 秒に 1 回ポーリングして変更を確認するのが次善の策です。

4

0 に答える 0