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

Windows 10下如何让UWP应用开机自动在前台运行?

解决Windows 10 UWP应用开机自动前台置顶运行的问题

这个问题我之前帮不少人解决过——UWP应用默认的开机启动机制确实只能让它在后台激活,微软这么设计是为了避免开机时一堆弹窗打扰用户。要让它自动跑到前台并置顶,得绕个弯,用系统自带的工具配合脚本实现,下面给你两个靠谱的方案:

方案1:任务计划程序 + PowerShell脚本(推荐)

这个方案完全依赖系统自带工具,不需要第三方软件,稳定性高。

步骤1:获取UWP应用的AUMID(应用用户模型ID)

这是启动UWP应用的唯一标识,获取方法:

  1. 按下Win+X,打开Windows PowerShell(管理员身份打开也可以)
  2. 执行命令:
Get-StartApps
  1. 在输出列表里找到你的目标应用,复制它的ID字段(看起来像Microsoft.WindowsCalculator_8wekyb3d8bbwe!App这样的字符串)

步骤2:编写PowerShell脚本

新建一个文本文件,把下面的代码粘贴进去,然后替换你的AUMID和应用窗口标题,最后保存为LaunchUWPForeground.ps1(注意后缀是.ps1):

# 启动目标UWP应用
Start-Process "shell:AppsFolder\你的AUMID"

# 等待应用完全启动(根据应用启动速度调整秒数,比如5秒,慢的应用可以设10秒)
Start-Sleep -Seconds 5

# 调用Win32 API将窗口置顶
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Win32 {
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
}
"@

# 替换为你的应用窗口标题(比如"计算器"),UWP窗口类名一般是ApplicationFrameWindow
$hwnd = [Win32]::FindWindow("ApplicationFrameWindow", "应用窗口标题")

# 如果找到窗口句柄,就将它置顶到前台
if ($hwnd -ne [IntPtr]::Zero) {
    [Win32]::SetForegroundWindow($hwnd)
}

提示:如果不知道应用窗口标题,可以打开应用后,在PowerShell里执行Get-Process | Where-Object {$_.MainWindowTitle -ne ""},找到对应进程的MainWindowTitle字段。

步骤3:创建任务计划程序任务

  1. 按下Win+S,搜索并打开任务计划程序
  2. 点击右侧的创建基本任务,按照向导操作:
    • 名称:随便填(比如“开机启动UWP应用到前台”),描述可选
    • 触发器:选择当我登录时,点击下一步
    • 操作:选择启动程序,点击下一步
    • 程序或脚本:填powershell.exe
    • 添加参数(可选):填-ExecutionPolicy Bypass -File "你保存的脚本路径.ps1"(比如-ExecutionPolicy Bypass -File "C:\Scripts\LaunchUWPForeground.ps1")
    • 点击完成,然后在任务列表里找到刚创建的任务,右键选择属性
  3. 在属性窗口里做以下设置:
    • 勾选不管用户是否登录都要运行
    • 勾选使用最高权限运行(避免权限不足无法激活窗口)
    • 切换到触发器标签,双击登录触发器,勾选延迟任务时间(比如10秒,避免和系统开机的其他进程抢资源)

设置完成后,重启电脑测试效果即可。

方案2:VBScript + 任务计划程序(更简洁)

如果你觉得PowerShell脚本太复杂,可以用VBScript实现,步骤类似:

步骤1:获取AUMID(和方案1一样)

步骤2:编写VBScript脚本

新建文本文件,粘贴下面代码,替换你的AUMID和应用窗口标题,保存为LaunchUWPForeground.vbs:

Set objShell = CreateObject("WScript.Shell")
' 启动UWP应用
objShell.Run "shell:AppsFolder\你的AUMID"
' 等待应用启动(单位是毫秒,5000=5秒)
WScript.Sleep 5000
' 激活并置顶应用窗口
objShell.AppActivate "应用窗口标题"

步骤3:创建任务计划

和方案1的步骤3类似,只是操作里的程序或脚本填wscript.exe,添加参数填"你保存的脚本路径.vbs"(比如"C:\Scripts\LaunchUWPForeground.vbs"),同样要勾选最高权限和延迟任务时间。

注意事项

  • 等待时间调整:不同应用启动速度不一样,如果脚本执行时窗口还没加载出来,会导致置顶失败,所以要根据实际情况调整Start-Sleep或WScript.Sleep的时间。
  • 窗口标题变化的情况:如果应用窗口标题是动态的(比如带文件名、未读消息数),可以改用进程名获取窗口句柄。比如在PowerShell脚本里,把找窗口的代码换成:
    $process = Get-Process "应用进程名" # 比如计算器是Calculator
    if ($process -ne $null) {
        [Win32]::SetForegroundWindow($process.MainWindowHandle)
    }
    
  • 权限问题:必须勾选任务计划的“最高权限运行”,否则Windows的前台窗口保护机制会阻止脚本激活窗口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 03:43:20