0
我正在爲使用Windows Embedded Handheld 6.5 Classic的手持式條形碼掃描器編寫程序。在Windows Embedded Handheld 6.5 Classic中按住Shift鍵停留
我在表單上添加了一個LinkLabel,並對它進行了編碼,這樣當您按下Shift並單擊鏈接時,它會彈出一個輸入框供您輸入密碼(我將用一個實際的表單替換它但它暫時是一個輸入框)
當我放開班次並開始使用物理鍵輸入密碼(它當前是4位數字)時,它將第一個字符視爲我仍在握住轉移。
在代碼中,是否有任何方法將其還原回來,以免按下換檔? 我試圖使用keybd_event api,它似乎並不工作
這是我試過,但我似乎無法找到其他任何東西嘗試。
Public Declare Sub keybd_event Lib "coredll.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Private Sub lblTitle_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblTitle.Click
Try
If GetKeyState(Keys.ShiftKey) = 0 Then Exit Sub
Dim StaffPassword as String = "1234"
Dim _Continue As Boolean = False
keybd_event(VK_Shift, 0, KEYEVENTF_KEYDOWN, 0)
keybd_event(VK_Shift, 0, KEYEVENTF_KEYUP, 0)
Do Until _Continue
Dim _Password As String = InputBox("Please enter the staff password to go into the Admin Screen.", "Enter Password", "", True)
If Not _Password = StaffPassword Then
Dim _Ans As MsgBoxResult = MsgBox("You entered an incorrect password!" & vbNewLine & vbNewLine & "Would you like to try again?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo, "Incorrect Password")
If _Ans = MsgBoxResult.No Then Exit Sub
Else
_Continue = True
End If
Loop
frmAdmin.ShowDialog()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End Sub
請問能有人幫忙嗎?
嘗試將兩個語句組合成一個:'keybd_event(VK_Shift,0,KEYEVENTF_KEYDOWN或KEYEVENTF_KEYUP,0)' –
感謝您的建議,但它沒有奏效。該設備似乎將它保存在內存中,不管按鍵是否按下,即使您還沒有按下它。當輸入文本信息等時,它使得它更容易,所以你按下shift鍵(而不是按住),然後它將大寫下一個字符。 –
在你的代碼中使用ToUpper()或者使用VK_CAPITAL(0x14)而不是VK_SHIFT(0x10) – josef