按键精灵 -获取窗口句柄







MessageBox "窗口右下角坐标:"
get_window_pos

//得到当前最前面的窗口句柄-就是把需要的窗口激活在最前面
Hwnd = Plugin.Window.Foreground() //得到鼠标指向的窗口句柄Hwnd = Plugin.Window.MousePoint() 2种都是可以获取句柄的
MessageBox Hwnd







//获取窗口位置
Function get_window_pos()
    //我是一个函数,被你调用了
    
    //Window插件获取窗口坐标[code]Call RunApp("notepad.exe")
    Delay 1500
    //0表示忽略
    //下面这句是查找窗口类名("Notepad")或者标题(0),返回找到的句柄Hwnd
    Dim Hwnd, str_win
    //Hwnd = Plugin.Window.Find("QQ.exe", 0)
    Hwnd = Plugin.Window.MousePoint()
    //下面这句是得到窗口句柄的客户区大小
    str_win = Plugin.Window.GetClientRect(Hwnd)
    TracePrint "得到窗口句柄的客户区大小为:" & str_win
    //下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串
    Dim arr_win, win_a, win_b, win_c, win_d
    arr_win = Split(str_win, "|")
    //下面这句将字符串转换成数值
    win_a = Clng(arr_win(0)) : win_b = Clng(arr_win(1))
    win_c = Clng(arr_win(2)) : win_d = Clng(arr_win(3))
    MessageBox "窗口左上角坐标:" & win_a & "," & win_b
    MessageBox "窗口右下角坐标:" & win_c & "," & win_d
        
    
End Function
//定义一个函数,可以在脚本中调用这个函数,支持参数和返回值
### 如何使用句柄精灵获取窗口句柄按键精灵或其他自动化工具中,获取窗口句柄是一项基础而重要的技能。以下是关于如何利用句柄精灵或类似方法来获取目标窗口及其子窗口句柄。 #### 使用句柄精灵获取窗口句柄 句柄精灵是一种专门用于捕获窗口句柄及相关属性的小型工具。它能够帮助开发者快速定位到特定的窗口以及其内部控件。具体操作如下: - 打开句柄精灵并启动目标程序。 - 利用鼠标悬停功能,在句柄精灵界面中点击“查找窗口”按钮,随后将鼠标移动至目标窗口上即可自动显示该窗口的相关信息,包括句柄值、类名和其他属性[^1]。 #### 获取多个相同类型的子窗口句柄 当遇到具有相同类名的多个子窗口时,仅依靠简单的查找可能只会返回第一个匹配项。为了找到后续的同类型子窗口,可以采用以下策略: - **遍历法**:编写脚本逐层遍历父窗口下的所有子窗口直到发现所需实例为止。例如,在按键精灵中可以通过 `FindWindowEx` 函数实现更深层次的搜索逻辑[^2]。 ```vbscript Dim hwndParent, hwndChild, iCount hwndParent = FindWindow("Popo.UI.MainFrame") ' 假设这是主窗体的类名 iCount = 0 Do While True hwndChild = FindWindowEx(hwndParent, hwndChild, "Popo.UI.Controls.Class.SkinSplitter", "") If hwndChild = 0 Then Exit Do Debug.Print "Found child window #" & (iCount + 1) & ": Handle=" & hwndChild iCount = iCount + 1 Loop ``` 上述代码片段展示了如何通过循环调用 `FindWindowEx` 来逐一检索指定父级下所有的 “SkinSplitter” 类型子窗口,并打印它们各自的句柄值。 #### 工具推荐 除了手动编码外,还可以借助一些第三方软件辅助完成复杂的句柄抓取工作。比如 Spy++ 是 Microsoft 提供的一款调试工具,它可以直观地展示应用程序内的各个层次结构关系;AutoIt Window Info Tool 同样适用于此类场景分析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值