我想用键盘来控制鼠标的移动。问下用哪个函数或API?还有,如何才能让鼠标的位移坐标是以整个桌面为主的?
解决方案 »
- 有人知道北京北科光大公司的情况吗?明天要去笔试,请大家踊跃发言,给点意见或建议
- 问VB高手们
- 哪里有音频播放的控件下载?
- 怎样使用vb中的progress bar(进度条)?,报酬高高奥!!!!:)
- 各位前辈请问在VB或VC如何判断某个文件已经在某个文件加中存在?
- 请问在vb6.0中如何生成一个注册表键值(没看懂那个API格式)哪位大侠给写个例子
- 请教: 记录集与记录集之间根据主键值如何关联,使指针一起移动?
- 一个简单的赋值问题
- 一个winsock的疑惑,高手急救!
- 请教:如何让程序最小化时图标放置在任务栏右侧?谢谢。
- VB自定类中没法响应ADO异步调用事件??请高手帮忙解决下?
- 怎么样获得屏幕分辨率?
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_MOVE = &H1 ' mouse move
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
Private Const MOD_ALT = &H1
Private Const MOD_CONTROL = &H2
Private Const MOD_SHIFT = &H4
Private Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Type Msg
hWnd As Long
Message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
Private bCancel As BooleanPrivate Sub ProcessMessages()
Dim Message As Msg
'loop until bCancel is set to True
Do While Not bCancel
'wait for a message
WaitMessage
'check if it's a HOTKEY-message
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
Timer1.Enabled = Not Timer1.Enabled
End If
'let the operating system process other events
DoEvents
Loop
End SubPrivate Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: [email protected]
Dim ret As Long
bCancel = False
'register the Ctrl-F hotkey
ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyM)
'show some information
Me.AutoRedraw = True
Me.Print "Press CTRL-M to Auto Click Mouse"
'show the form and
Show
'process the Hotkey messages
ProcessMessages
End SubPrivate Sub Form_Unload(Cancel As Integer)
bCancel = True
'unregister hotkey
Call UnregisterHotKey(Me.hWnd, &HBFFF&)
End SubPrivate Sub Command1_Click()
Dim posx, posy
posx = 100: posy = 100
a = SetCursorPos(posx, posy)
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, posx, posy, 0, 0
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, posx, posy, 0, 0End Sub