1

我正在构建一个后台 vb 程序,用于检测另一个应用程序上的条形码扫描。如果检测到某个字符串,我想通过在 VB 中使用 keySend 命令将另一个字符串添加到正在运行的应用程序中。我可以从 keypress 或 keydown 读取字符串,但不能从条形码扫描仪读取字符串。

4

2 回答 2

1

在名为的窗体上放置一个 Timer 控件Timer1

Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As KeyCodeConstants) As Long

Private barcode As String

Private Sub Timer1_Timer()
    Dim keyResult As Integer
    Dim chrKey As String
    Dim i As Integer
    For i = 2 To 90
        keyResult = 0
        keyResult = GetAsyncKeystate(i)
        If keyResult = -32767 Then
            chrKey = Chr(i)
            barcode = barcode & chrKey
            Exit For
        End If
    Next i
End Sub

这是一个键盘记录器。它将记录所有按下的键。将计时器间隔设置为扫描仪的速度,这样您就不会重复击键。

于 2013-03-15T04:44:05.590 回答
0

如果我理解正确,您的问题是如何检测应用何时扫描代码?

如何执行扫描、手动键盘输入或使用条形码扫描仪设备?

如果它使用设备,那么这一切都取决于设备。我只使用过一些设备,它们所做的就是每当您扫描某些东西时,它会将数据从条形码复制到剪贴板(就像您按 CTRL+C 复制一行文本一样)。

因此,您所要做的就是监视剪贴板中的特定字符串,然后执行您需要做的任何事情。

于 2013-03-15T18:09:23.843 回答