解决方案 »
- Access数据库如何合并?
- 求教用一个Treeview做一个Windows资源管理器
- 请教setup factory打包的具体步骤,50分相送!
- ado版本覆盖会产生何不良结果?
- 关于Access数据库 倒入SQL问题。急急急急急急急急!!在线等!!!!
- 高手进来救命!!!
- 怎么给 Text filters 的contains 中加3个条件?
- jennyvenus(九阴白骨脱衣艳舞)和雪狐 帮忙看一下 上次list问题
- 如何循环打印
- 能不能详细的介绍一些关于字符编码的转换,用法?如:Unicode等等。谢了
- 用MSComm1串口通讯取数据的问题
- 关于在VB内写VBA的问题,在WORD中的某单元格内(如在格子(4,3)内)
程序依样发送消息,注意参数(特别是坐标之类的)一致,看是否起作用。
如果不起作用,试试将整段操作中有关鼠标、焦点之类的消息也依样发送。
'模拟点击按钮,hWndTargetBtn是目标按钮的句柄
Call SendMessage(hWndTargetBtn, WM_LBUTTONDOWN, 0, 0)
Call SendMessage(hWndTargetBtn, WM_LBUTTONUP, 0, 0)
你给我的程式无法送送。计算器上面的按钮在表面``。。我要点击的按钮在子窗体里面呀
Dear Tiger_Zhao
spy 消息是发送的 WM_LBUTTONDOWN 我也是发送的这个呀``也不行Dear chenjl1031
Call SendMessage(hWndTargetBtn, WM_LBUTTONDOWN, 0, 0)
Call SendMessage(hWndTargetBtn, WM_LBUTTONUP, 0, 0)
这个方法我也试过```单击其它窗体上的按钮没有问题``可我这个不行啊```各位朋友,谢谢你们的回答。```能否麻烦一下你们``留个QQ——mail地址给我``我把程式发给我们看看???
已经通过邮件把程式发给你了``我想要单击窗体睥开始按钮。如果可以的话通过的邮件回复给我,拜托你了。感谢!!!
'窗体中添加两个按钮
'
'点击其它软件中的按钮测试程序.
'
'By 嗷嗷叫的老马
'http://www.m5home.com/Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const WM_LBUTTONDOWN As Long = &H201
Private Const WM_LBUTTONUP As Long = &H202Dim hDest As Long '目标按钮句柄Private Sub Command1_Click()
'寻找按钮句柄
'
'具体代码内容根据软件的结构不同而不同,参考SPY++中目标软件的结构图
'
Dim hTmp As Long, hTmp2 As Long
hTmp = FindWindow("TFm", vbNullString)
If hTmp <> 0 Then
hTmp = FindWindowEx(hTmp, 0&, "TPageControl", vbNullString)
hTmp = FindWindowEx(hTmp, 0&, "TTabSheet", vbNullString)
hTmp2 = FindWindowEx(hTmp, 0&, "TPanel", vbNullString)
hTmp = FindWindowEx(hTmp, hTmp2, "TPanel", vbNullString)
hTmp = FindWindowEx(hTmp, 0&, "TGroupBox", vbNullString)
hTmp = FindWindowEx(hTmp, 0&, "TPanel", vbNullString)
hDest = FindWindowEx(hTmp, 0&, "TRzBitBtn", vbNullString)
If hDest <> 0 Then
MsgBox "成功找到句柄!"
Else
MsgBox "未找到句柄!"
End If
End If
End SubPrivate Sub Command2_Click()
If hDest <> 0 Then
SendClick hDest, 10, 10 '
Else
MsgBox "还未找到句柄!"
End If
End SubPrivate Sub Form_Load()
Command1.Caption = "查找句柄"
Command2.Caption = "发送单击消息"
End SubPrivate Function SendClick(hwnd As Long, mX As Long, mY As Long)
'发送点击消息
Dim I As Long
I = PostMessage(hwnd, WM_LBUTTONDOWN, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
I = PostMessage(hwnd, WM_LBUTTONUP, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
End Function以下是SPY++所得到的窗体结构以及相关代码:使用方法:先按"查找句柄"按钮得到句柄,再按"发送单击消息"即可看到效果.另外,测试过这个Victoria 4.3为最小化情况下仍然有效,说明它没有在最小化时拒绝响应鼠标消息..
谢谢你的回答。