vb postmessage程序找错

来源:百度知道 编辑:UC知道 时间:2024/07/06 14:02:22
哪位大侠知道怎么样向非本工程的窗口(比如游戏客户端)的指定位置发送鼠标单击命令~~~~下面程序运行不起来,谁能帮我看看哈好像是下面这句错了,hWndHH,什么意思~~~有哪位大侠可以帮忙的最好留个QQ我~~谢谢啦
Call PostMessage(hWndHH, wMsg, wParam, lParam)’发送消息
End Sub

'API 声明
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'常量声明
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H

既然上面的鼠标按下用的是hwndx,为什么鼠标抬起用hwndhh???两者不是同一窗口吗?把hwndhh改成hwndx试试!
另外,最好别用call,可以使用
dim a as long
a=PostMessage(hWndX, wMsg, wParam, lParam)
在调试的时候可以随时添加debug.print a来看看这个函数的执行结果
wparam你这里用的是1,具体详细资料我也没有,但我看到网上好多类似程序用的是0.
还有一个问题,那就是,在调试的时候,最好在findwindow函数后面再加个debug.pring hwndx,看看程序是否取到了游戏窗口的句柄