想用VB程序实现点击其他程序上按钮单击操作,如点击Form1的command2按钮,查了一下,用了以下代码,但还是差一步,哪位大神指点一下:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) 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
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
'以上是声明和定义常量
Private Sub Command1_Click()
Dim hwd As Long
Dim hwd2 As Long
Dim send As Long
hwd = FindWindow(vbNullString, "Form1")
If hwd <> 0 Then MsgBox "找到Form1窗口!!!"
’下面的代码就不对了,哪位给指点指点,感激不尽!!!
hwd2 = FindWindowEx(hwd, WM_LBUTTONDOWN, BM_CLICK, ByVal &H10001)
send = SendMessage(hwd2, WM_LBUTTONDOWN, Command1, ByVal &H10001)
send = SendMessage(hwd2, WM_LBUTTONDOWN, Command1, ByVal &H10001)
send = SendMessage(hwd2, WM_LBUTTONUP, Command1, 0)
send = SendMessage(hwd, BM_CLICK, 0&, 0&)
End Sub
可能后面的参数不对,参考一下我的代码,原创
你的代码也不能调用计算器的按钮,只能打开计算器,不能操作计算器的按钮,我的是Win7系统。
追答我这里XP下运行没问题
追问恩,最终发现win7的计算机比较诡异,这个代码不行,不过这个代码最后还是对我有点启发。另外提醒大家编这类程序需要spy++帮助查看句柄标题之类的。
本回答被提问者采纳我这有个VBAPI的文档你可以看下,如果鼠标左键不行的话可以尝试发送回车键