2013-03-15 35 views
1

我正在構建一個背景vb程序,用於檢測另一個應用程序上的條形碼掃描。如果檢測到某個字符串,我想通過在VB中使用keySend命令將另一個字符串添加到正在運行的應用程序中。我可以從按鍵或keydown讀取字符串,但不能讀取條形碼掃描器。VB6背景流程,如何檢測另一個應用程序上的條形碼掃描

+0

你爲什麼使用VB6?你的目標是什麼操作系統。 – 2013-03-15 02:22:59

回答

1

在表單上放置一個定時器控制稱爲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 

這是一個鍵盤記錄。它會記錄所有按鍵。將計時器間隔設置爲掃描儀的速度,以免重複擊鍵。

0

如果我正確理解你,你的問題是如何檢測應用何時掃描代碼?

如何執行掃描,手動鍵盤輸入或使用條形碼掃描儀設備?

如果它使用的是設備,那麼這一切都取決於設備。我只使用了幾個設備,他們做的是每當你掃描一些東西時,它將數據從條碼複製到剪貼板(就像按CTRL + C複製一行文本一樣)。

因此,您只需監視剪貼板中的特定字符串,然後執行您所需的任何操作即可。

+0

從未見過條形碼掃描儀使用剪貼板。總是看到,然後像鍵盤一樣發送按鍵。你用什麼掃描儀? – djv 2013-03-16 05:58:37

+0

哦,我不記得,它可能已經過了5年了。這是一個小巧簡單的手持設備。它非常可靠且易於使用,無需安裝或軟件。您只需將掃描儀插入USB並使用它。每次掃描代碼時,它都會將代碼複製到剪貼板並模擬CTRL + V,這意味着如果您的光標位於文本框或記事本或任何可以粘貼到的Windows環境中,則它將粘貼來自剪貼板的代碼。 – George 2013-03-18 14:13:06

+0

在幕後使用剪貼板幾乎總是一個壞主意。您干擾最終用戶的剪貼板操作。我非常懷疑一個真正的公司會出售這樣做的東西。我使用的所有條形碼掃描儀只是在掃描類似於鍵盤時直接將字符發送到光標。有可能是你選擇了一個設置,但我不會認爲這是規範,也不是代碼爲這個功能 - 它是壞的。 – djv 2013-03-18 14:21:08

相關問題