如何通过任务计划程序定时启动UWP应用实现InkCanvas绘图转SVG
UWP应用定时启动可行方案
以下是可直接落地的实现方案,按稳定性和灵活度排序:
方案1:自定义协议激活(最推荐,支持参数传递)
- 第一步:给UWP应用添加协议声明
打开项目中的Package.appxmanifest文件,切换到「声明」标签页,添加「协议」类型声明,自定义协议名称(比如isfsvgconv),保存后重新打包安装应用。 - 第二步:验证协议可用性
按Win + R呼出运行窗口,输入isfsvgconv:(注意末尾带冒号),确认应用可正常唤起。 - 第三步:添加自动处理逻辑
在UWP项目的App.xaml.cs中重写OnActivated方法,检测到是协议激活时,直接执行ISF转SVG的逻辑,任务完成后调用Application.Current.Exit()自动退出应用,无需用户交互。 - 第四步:配置定时任务
打开Windows任务计划程序,新建每日定时任务:- 操作类型选择「启动程序」
- 程序或脚本填
explorer.exe - 参数填你自定义的协议串
isfsvgconv:(如果需要传输入输出路径,也可以拼接为isfsvgconv:?input=xxx&output=xxx,在OnActivated中解析参数即可) - 按需设置触发时间、运行权限,建议勾选「隐藏」选项减少窗口弹出。
方案2:通过AUMID直接启动(无需修改应用清单)
如果不方便调整UWP的协议声明,可以用应用的AUMID直接启动:
- 第一步:获取应用AUMID
打开PowerShell执行命令Get-StartApps,在输出列表中找到你的转换应用,对应的AppID值就是AUMID,格式通常为发布商.应用名_随机字符串!应用入口。 - 第二步:验证启动
PowerShell中执行explorer.exe shell:appsFolder\<替换为你的应用AUMID>,确认应用可正常启动。 - 第三步:配置定时任务
和方案1一致,在任务计划程序中设置启动explorer.exe,参数填上面的shell:appsFolder\<AUMID>串即可,同时在UWP的OnLaunched方法中添加启动后自动执行转换、完成后退出的逻辑。
注意事项
- UWP默认有沙盒文件访问限制,如需读取任意路径的ISF文件,需要在
Package.appxmanifest中添加broadFileSystemAccess能力,同时在Windows设置「应用和功能」中找到该应用,开启「文件系统」权限。 - 如需无窗口运行,可以在应用启动后调用
CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true同时设置窗口宽高为0,或者配置应用为无头运行模式。
内容的提问来源于stack exchange,提问作者Nick Goloborodko
相关产品推荐
相关产品推荐

