拉风的Lee 2017-03-08 09:11 采纳率: 33.3%
浏览 1474
已结题

vb.net 获取【打开】文件夹句柄

想用一个程序操作【程序1】操作另一个程序【程序2】中的控件,之前都挺顺利的,但是:当程序2中的 按钮【...】通过程序1点开后,无法获取当前【打开文件夹】的句柄??好像程序卡在【SendMessage(hwnd12, BM_CLICK, 0, 0)】代码和程序窗体 请见图片,谢谢。。请给位帮帮忙。。

补充: 我手动先把【程序2】的子窗口打开后,利用【程序1】就能获取其子窗口的句柄。

 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    '此函数用于寻找其他程序的句柄。这里用来寻找音量控制系统的窗口句柄。
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
    '此函数用于寻找其他程序的控件句柄。
    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    '此函数用于向窗体及控件发送消息。

    Private Const BM_CLICK As Integer = &HF5

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim hwnd0 As Integer '主窗口句柄
        Dim hwnd00 As Integer '字窗口句柄
        Dim hwnd11 As Integer '控件句柄 第一个...
        Dim hwnd12 As Integer '控件句柄 第二个...

        hwnd0 = FindWindow(vbNullString, "PPT") '获取主窗体句柄

        hwnd11 = FindWindowEx(hwnd0, 0, "Button", "...") '获取句柄  ,Button
        hwnd12 = FindWindowEx(hwnd0, hwnd11, "Button", "...") '获取句柄,Button
        SendMessage(hwnd12, BM_CLICK, 0, 0) '点击控件


        hwnd00 = FindWindow("#32770", "打开")

        TextBox2.Text = hwnd00


    End Sub

图片说明
图片说明

  • 写回答

1条回答

  • threenewbee 2017-03-08 15:57
    关注

    用spy++看下窗体的层次关系,还有窗口类是否正确。

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划