VB 模拟点击窗口中的某一点坐标

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:32:48
假如有一个窗口标题是“我的窗口”,句柄是“123456789”,窗口大小是:1000*1500。现在我用VB设计一个程序模拟鼠标点击这个窗口中坐标为:(350,500)的这一个点。请问这该如何实现啊?这个程序确实有点麻烦,但实现后我还可以加100甚至更多分。
27115 理解错误了。我说的是窗口坐标,而mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 350,500, 0 是点击屏幕坐标。还有(350,500)只是我的举例!!
小和尚的思路我原来也想到,但从窗口坐标转为屏幕坐标有点难度……——……。
27115 注意,窗口上控件的句柄没有给出!虽然可以列举窗口所有控件,但VB中并不是所有的控件都能列举出来的,例如image控件就不能!

Winnip888 ,我可没心情玩游戏!

这个很简单的问题,使用方法有很多种我给你思路
1。使用MOUSEEVENTF来模拟,只不过需要算出具体坐标是多少!例如你先要获取窗口在屏幕中的位置然后再换算成实际坐标,这个也是相对坐标的问题
2。使用sendmessage给窗口送一个鼠标消息,消息里带上坐标就可以了

法一:
可以人为地调用鼠标单击事件过程,如有一个鼠标单击事件:
Sub Form_MouseDown(Button As Integer, X As Integer, Y As Integer)
...
End Sub

调用Form_MouseDown(。。。)

法二:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const BM_CLICK = &HF5
Private Const MK_LBUTTON = &H1

'其中hwnd是被点击控件的句柄,X,Y就是要点击的坐标(以被hwnd控件为基础)
PostMessage hwnd, BM_CLICK, MK_LBUTTON, y * 65536 + x

-----------
Me.hwnd

莫非你要搞游戏?要是搞游戏的话用按键精灵。