如何不停地产生点击的消息
我想用sendmassageu发送消息,不停地单击其他程序,谁可以帮一下 问题点数:100、回复次数:9Top
1 楼wzzwwz(皮皮鲁)回复于 2005-01-28 15:50:10 得分 20
这个可以吗?
mouse_event
VB声明
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
说明
模拟一次鼠标事件
参数表
参数 类型及说明
dwFlags Long,下述标志的一个组合
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元
MOUSEEVENTF_MOVE 移动鼠标
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下
dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动
dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动
cButtons Long,未使用
dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
注解
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
Top
2 楼jinjazz(近身剪)回复于 2005-01-28 15:53:52 得分 20
GetWindowRect(句柄, r);
setcursorpos(r.Right - 1, r.Bottom - 1);
Mouse_Event(MOUSEEVENTF_LEFTDOWN , r.Right - 1, r.Bottom - 1, 0, 0);
Mouse_Event(MOUSEEVENTF_LEFTUP , r.Right - 1, r.Bottom - 1, 0, 0);Top
3 楼tmd007(学而时习之,不亦乐乎。姓菜名了字灌之号蹭之。)回复于 2005-01-28 16:06:51 得分 20
Private Sub MoniMouse(ByVal iMouseX As Integer, ByVal iMouseY As Integer, ByVal iButton As Integer)
SetCursorPos iMouseX, iMouseY
If iButton = 1 Then'左键
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
ElseIf iButton = 2 Then‘右键
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
End If
End SubTop
4 楼pikachu8guan(30度仰角 (www.vbgood.com 新手学堂 Manager))回复于 2005-01-30 12:30:27 得分 20
获得那个窗体得句柄 然后用FlashWindow和BringWindowToTop
FlashWindow:
'This project needs a timer,Interval 1000
'In general section
Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
Const Invert = 1
Private Sub Timer1_Timer()
'Flash the window
FlashWindow Me.hwnd, Invert
End Sub
BringWindowToTop:
'This program needs two forms, two buttons and a module
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
'in form1
'Set Form2 on top
BringWindowToTop Form2.hwnd
End Sub
Private Sub Form_Load()
'in form1
Form2.Visible = True
End Sub
Private Sub Command1_Click()
'in form2
'Set Form1 on top
BringWindowToTop Form1.hwnd
End Sub
Top
5 楼andycool(~風雲~)回复于 2005-01-30 12:36:23 得分 0
各位,不要太累了,到 http://www.yyfc.com/memberinfo.asp?userid=213688 捧下我的场,正好娱乐一下.谢了。Top
6 楼usbbaby()回复于 2005-02-02 11:58:19 得分 0
先多谢大家,以下程序只能对文本框有效,不知何故
Private Type POINTAPI
x As Long
y As Long
End Type
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Const WM_LBUTTONDBLCLK = &H203
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub Timer1_Timer()
Dim Tmp As Long, Pre As Long, hCursorWnd As Long, Pos As Long
Dim Point As POINTAPI
GetCursorPos Point
hCursorWnd = WindowFromPoint(Point.x, Point.y)
SendMessage hCursorWnd, WM_LBUTTONDOWN, 0, 0
Pre = GetTickCount()
While GetTickCount() - Pre < 200
Tmp = DoEvents()
Wend
SendMessage hCursorWnd, WM_LBUTTONUP, 0, 0
End Sub
Top
7 楼samwzhang(分全给我)回复于 2005-02-02 12:27:53 得分 10
蹭Top
8 楼szmickylee(笨老鼠)回复于 2005-02-02 12:38:39 得分 10
顶分Top
9 楼usbbaby()回复于 2005-02-02 14:42:05 得分 0
终于OK,多谢各位!
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_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
Top




