如何通过硬编码路径从程序内打开Microsoft To Do?
Microsoft To Do 直接启动问题的解决方案
问题背景
要在自研解决方案中通过按钮直接打开Microsoft To Do,但直接调用C:\Program Files\WindowsApps目录下的Todo.exe时,会提示缺失SharedLibrary.dll和mrt100_app,重装应用、硬编码路径、创建桌面快捷方式均无效。
核心原因
Microsoft To Do是Windows Store分发的UWP应用,WindowsApps文件夹内的Todo.exe并非独立可执行文件,它依赖UWP运行时的沙箱环境才能正常运行,直接调用会跳过沙箱初始化,导致依赖缺失报错。同时该目录下的版本文件夹会随应用更新变化,硬编码路径极易失效。
正确启动方式
方法1:应用协议启动
Microsoft To Do支持自定义启动协议,直接执行以下命令即可快速启动:
start ms-todos:
自研程序中可通过系统进程启动API(如Windows平台的ShellExecute、Process.Start)执行该协议命令。
方法2:PowerShell命令启动
通过PowerShell调用UWP应用的官方启动入口,这个路径不受应用版本更新影响:
Start-Process "shell:AppsFolder\Microsoft.Todos_8wekyb3d8bbwe!App"
方法3:获取稳定启动路径
如果需要在自研方案中使用可直接调用的路径,可按以下步骤获取:
- 打开开始菜单,找到Microsoft To Do,右键选择「更多」→「打开文件位置」,打开快捷方式所在目录(通常为
%AppData%\Microsoft\Windows\Start Menu\Programs) - 右键该快捷方式选择「属性」,在「快捷方式」选项卡的「目标」栏复制内容(格式为
shell:AppsFolder\Microsoft.Todos_8wekyb3d8bbwe!App),此为稳定启动路径,可直接用于程序调用。
注意事项
- 无需修改
WindowsApps文件夹权限,该目录是UWP应用的沙箱存储区,手动修改权限可能破坏其他应用的运行环境,且无必要。 - 避免硬编码
WindowsApps内的版本文件夹路径,应用更新后该路径会自动变更,导致启动失败。
内容的提问来源于stack exchange,提问作者John Michael Wilkinson
相关产品推荐
相关产品推荐

