You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从外部通过URI直接打开指定UWP应用的高级设置页?

解答

1. 外部通过URI打开是否支持?

不支持。微软目前并未公开提供从UWP应用外部通过ms-settings:系列URI直接跳转至特定应用「Advanced options」页的能力。右键开始菜单的「App settings」是系统内部私有实现,与公开的URI/API方案无关。你测试的带参数URI仅能打开「Apps > Installed apps」概览页,也验证了外部调用无法实现定向跳转的现状。

2. 若支持的正确格式?

由于外部调用不被支持,不存在对应的有效查询字符串格式。仅在UWP应用内部调用ms-settings:appsfeatures-app时,系统会自动关联当前应用的高级设置页,无需额外参数。

3. 不支持时的官方替代方法?

可以使用Windows UI自动化框架(UIAutomation)结合PowerShell脚本实现自动化打开,这是官方认可的Windows界面自动化方案,示例脚本如下:

# 1. 获取目标应用的包家族名称(以计算器为例)
$packageFamilyName = (Get-AppxPackage *Calculator*).PackageFamilyName

# 2. 打开「Apps > Installed apps」设置页面
Start-Process ms-settings:appsfeatures
Start-Sleep -Seconds 2 # 等待页面加载完成

# 3. 加载UIAutomation程序集
Add-Type -AssemblyName UIAutomationClient
$rootElement = [System.Windows.Automation.AutomationElement]::RootElement
$invokePattern = [System.Windows.Automation.InvokePattern]::Lookup()

# 4. 定位搜索框并输入包家族名称过滤应用
$searchBox = $rootElement.FindFirst(
    [System.Windows.Automation.TreeScope]::Descendants,
    [System.Windows.Automation.PropertyCondition]::new(
        [System.Windows.Automation.AutomationElement]::AutomationIdProperty,
        "SearchBoxInput"
    )
)
if ($searchBox) {
    $searchBox.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Lookup()).SetValue($packageFamilyName)
    Start-Sleep -Seconds 1
}

# 5. 定位目标应用的「更多」按钮并点击
$appElement = $rootElement.FindFirst(
    [System.Windows.Automation.TreeScope]::Descendants,
    [System.Windows.Automation.PropertyCondition]::new(
        [System.Windows.Automation.AutomationElement]::NameProperty,
        "*$packageFamilyName*"
    )
)
if ($appElement) {
    $moreButton = $appElement.FindFirst(
        [System.Windows.Automation.TreeScope]::Children,
        [System.Windows.Automation.PropertyCondition]::new(
            [System.Windows.Automation.AutomationElement]::AutomationIdProperty,
            "MoreButton"
        )
    )
    if ($moreButton) {
        $moreButton.GetCurrentPattern($invokePattern).Invoke()
        Start-Sleep -Seconds 0.5

        # 6. 定位并点击「Advanced options」选项
        $advancedOption = $rootElement.FindFirst(
            [System.Windows.Automation.TreeScope]::Descendants,
            [System.Windows.Automation.PropertyCondition]::new(
                [System.Windows.Automation.AutomationElement]::NameProperty,
                "Advanced options"
            )
        )
        if ($advancedOption) {
            $advancedOption.GetCurrentPattern($invokePattern).Invoke()
        }
    }
}

注意:该脚本依赖Windows设置页面的UI元素标识,若系统更新导致页面结构变化,可能需要调整对应的自动化条件参数。


内容的提问来源于stack exchange,提问作者mklement0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 21:35:00