电子秤系统的实现
现在在项目实施的时候遇到一个问题,需要通过API编程后获得电子秤上面的数据,然后通过热键来将得到的数据输出到光标焦点处,实际上就是一个自动输入的过程,有点类似扫描枪读取条形码的样子,有谁做过没,给个例子,小弟不胜感谢的呀
[解决办法]
http://www.vbaccelerator.com/home/vb/code/Libraries/Subclassing/Registered_Hotkeys/VB6_Hot_Key_Sample.asp
注意看说明
[解决办法]
给你一个使用热键向当前活动窗体模拟输入指定内容的例子:
以下代码需写在一个模块中:
Option Explicit
Public Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA " (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32 " Alias "CallWindowProcA " (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function RegisterHotKey Lib "user32 " (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Public Declare Function UnregisterHotKey Lib "user32 " (ByVal hWnd As Long, ByVal id As Long) As Long
Public Const MOD_ALT = 1
Public Const MOD_CONTROL = 2
Public Const MOD_SHIFT = 4
Public Const MOD_WIN = 8
Public Const GWL_WNDPROC = (-4)
Public Const WM_HOTKEY = &H312
Public Const HotKeyID = 1001
Public PrevProc As Long
Public SendData As String
Public Function MyWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MyWindowProc = CallWindowProc(PrevProc, hWnd, uMsg, wParam, lParam)
If uMsg = WM_HOTKEY And wParam = HotKeyID Then
SendKeys SendData
End If
End Function
以下代码写在一个窗体中:
Option Explicit
Private Sub Form_Load()
'注册热键: Windows键+A
RegisterHotKey Me.hWnd, HotKeyID, MOD_WIN, 65
'Hook
PrevProc = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf MyWindowProc)
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnregisterHotKey Me.hWnd, HotKeyID
SetWindowLong Me.hWnd, GWL_WNDPROC, PrevProc
End Sub
Private Sub Timer1_Timer()
'随机设置一个需要发送的内容
Select Case Int(Rnd * 4)
Case 0
SendData = "Hello! "
Case 1
SendData = "你好! "
Case 2
SendData = "Welcome! "
Case 3
SendData = "Hi! "
End Select
End Sub
程序运行之后, 按下热键(Windows键+A), 就会在当前活动窗体中输入一串文字(内容为四个中的随机选取值)