鼠标不一定在本窗口,可能在WINDOWS任何一个程序下。只需要在鼠标任何时候点击了一下时纪录它点击了就好。
能纪录位置更好~~~
望赐教啊
能纪录位置更好~~~
望赐教啊
解决方案 »
- windows telnet 运行exe文件时 自动断开连接
- 搜索语句中如何用好 Instr() (Access数据库)
- 请问各位大侠!怎么在VB中引用别的软件程序呢?
- 请教EXCEL导入到SQL SERVER的问题!
- 请问大家如何在水晶报表中搜索一指定内容的个数?
- 怎么显示不定量的信息?
- 如何用DAO代码打开一个表?100分?并输出数据来 200分
- 请进~~~~~~~~~~~~~~(急。。。答出者高分相送)
- 请问,我想实现鼠标实时画线怎么做呀..TT
- 兄弟们,谁先答出VB+ACCESS菜题多得分.............................
- 关于ado控件的几个问题?
- 如何美化和增强listview控件?
Private Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Singler, y As Single)
Text1.Text="x="& x &"y=" &y
End Sub
Option Explicit
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lparam As Any) As Long
Public Const HC_ACTION = 0
Public Const WH_MOUSE_LL As Long = 14
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public hHook As LongPublic Sub EnableHook()
If hHook = 0 Then
hHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf HookProc, App.hInstance, 0)
End If
End Sub
Public Sub FreeHook()
If hHook <> 0 Then
Call UnhookWindowsHookEx(hHook)
hHook = 0
End If
End SubPublic Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
If nCode < 0 Then
HookProc = CallNextHookEx(hHook, nCode, wParam, lparam)
Exit Function
End If
If wParam = WM_LBUTTONDOWN Then
Dim PT As POINTAPI
GetCursorPos PT
Form1.Caption = "mouse click at " + CStr(PT.X) + "," + CStr(PT.Y)
End If
HookProc = 0 '令待完成的動作繼續完成,若為1,則取消原本要完成的動作
End Function
窗体(form1):
Option Explicit
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)Private Sub Form_Activate()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
Private Sub Form_Load()
EnableHook
End SubPrivate Sub Form_Unload(Cancel As Integer)
FreeHook
End Sub
四个按钮cmdRecord,cmdStop,cmdPlay,cmdNew。一个HScroll,hscrlSpeed。
下面是代码
Option ExplicitPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Type POINTAPI
X As Long
Y As Long
End Type
Private I As Long
Private sMouseArray() As StringPrivate Sub cmdNew_Click() '新建
cmdStop.Enabled = False
tmrMouse.Enabled = False
cmdRecord.Enabled = True
cmdPlay.Enabled = False
I = 0
End SubPrivate Sub cmdPlay_Click() '播放
Dim J As Long
Dim lPlay As Long
Dim lX As Long
Dim lY As Long
Dim sSplit() As String
lPlay = IFor J = 1 To lPlay
sSplit = Split(sMouseArray(J - 1))
lX = CLng(sSplit(0))
lY = CLng(sSplit(1))
Sleep hscrlSpeed.Value
SetCursorPos lX, lY
Next JEnd SubPrivate Sub cmdRecord_Click() '录制
cmdStop.Enabled = True
tmrMouse.Enabled = True
cmdRecord.Enabled = False
cmdNew.Enabled = False
End SubPrivate Sub cmdStop_Click() '停止录制
cmdStop.Enabled = False
tmrMouse.Enabled = False
cmdPlay.Enabled = True
cmdNew.Enabled = True
End SubPrivate Function RecordMouse() As String '
Dim mouse As POINTAPI
GetCursorPos mouse
RecordMouse = mouse.X & " " & mouse.Y
End FunctionPrivate Sub Form_Load()End SubPrivate Sub hscrlSpeed_Scroll()
lblSpeed.Caption = "Speed: " & hscrlSpeed.Value
End SubPrivate Sub tmrMouse_Timer()
ReDim Preserve sMouseArray(I)
sMouseArray(I) = RecordMouse
I = I + 1
End Sub