zoukankan      html  css  js  c++  java
  • AutoHotkey获取windows10新增的设置界面(ApplicationFrameHost.exe)相关信息

    用 AutoHotkey 通过 acc 方式获取上图的相关信息。

    值得注意的是 acc 不是用窗口的 hwnd, 而是从控件 Windows.UI.Core.CoreWindow1 的 hwnd 一层层获取的。

    相关文件下载

    AccViewer.exe 是查看窗口的工具,

    acc.ahk 是基础库,

    具体应用见 Applicationframehost.ahk

    msgbox(format("分类:{1}`n列表第2项:{2}`n标题:{3}`n子标题:{4}", _10.type(),_10.list()[2],_10.title(),_10.subTitle()))
    #include *i %A_LineFile%..acc.ahk
    
    #if WinActive("ahk_exe ApplicationFrameHost.exe")
    
    :O:eng::english(United States)
    return
    
    F4::
    _10.title()
    return
    
    #if
    
    class _10
    {
    
        accRoot(winTitle:="ahk_class ApplicationFrameWindow")
        {
            winId := ControlGetHwnd("Windows.UI.Core.CoreWindow1", winTitle) ;NOTE 不是主窗口,而是控件
            dllcall("LoadLibrary","Str","oleacc","Ptr")
            if dllcall("oleaccAccessibleObjectFromWindow", "ptr",winId, "uint",0, "ptr",-VarSetCapacity(IID,16)+NumPut(0x719B3800AA000C81,NumPut(0x11CF3C3D618736E0,IID,"int64"),"int64"), "ptr*",pacc)=0
                return ComObject(9,pacc,1)
        }
    
        ;分类(查找框下面第1行)
        type(winTitle:="ahk_class ApplicationFrameWindow")
        {
            return Acc_GetChildByPath(this.accRoot(winTitle), "4.4").accName(0)
        }
    
        ;左侧列表名称
        list(winTitle:="ahk_class ApplicationFrameWindow")
        {
            arr := []
            for _, accChild in Acc_Children(Acc_GetChildByPath(this.accRoot(winTitle), "4.5"))
                arr.push(accChild.accName(0))
            return arr
        }
    
        ;标题(右侧第1行)
        title(winTitle:="ahk_class ApplicationFrameWindow")
        {
            return Acc_GetChildByPath(this.accRoot(winTitle), "4.6.1").accName(0)
        }
    
        ;子标题(右侧第2行)
        subTitle(winTitle:="ahk_class ApplicationFrameWindow")
        {
            return Acc_GetChildByPath(this.accRoot(winTitle), "4.6.2.1.1").accName(0)
        }
    
    }
  • 相关阅读:
    怎样在过滤器中读取配置信息?
    怎样将直接数据库中Json字段,映射到Mybatis中的Map类型?
    spring/boot 打包,资源/配置/业务文件分离
    使用VS Code推送代码到GitHub
    Clion下jni配置
    curl post请求总是返回417错误
    ubuntu 12.10 apt-get 源
    如何让git小乌龟工具TortoiseGit记住你的账号密码
    FastCgi与Cgi
    Libevent核心原理
  • 原文地址:https://www.cnblogs.com/hyaray/p/12433985.html
Copyright © 2011-2022 走看看