[求助] 如何用VBA模拟点击另外一个程序的按钮?
大家好 ! 最近需要实现在Excel VBA中用代码模拟点击另外一个程序的按钮(Run)。
其中按钮的句柄已经得到了,但是使用SendMessage方法并没有实现点击按钮的效果(没有生成对应的文件)
以下是相关代码片段:
'声明API接口。
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, ByVal lParam As Any) As Long
'函数中对应代码。
Dim FWnd As Long, BWnd As Long
FWnd = FindWindow(vbNullString, amosWinName)
BWnd = FindWindowEx(FWnd, 0, vbNullString, amosBtnName)
Call SendMessage(BWnd, &H202B, &H8061C, &H12E900)
Call SendMessage(BWnd, &H202B, &H8061C, &H12DBF4)
Call SendMessage(BWnd, &H202B, &H8061C, &H12D7FC)
整个函数运行没有报错,就是没有实现点击按钮生成文件的效果。
另附上通过Spy++检测手动点击按钮的相关过程:
麻烦高人看看问题出在什么地方?谢谢!