背景

背景

背景

我可以通过运行以下命令来运行此 UWP 应用程序:

test://argument=123?other=true

这将运行链接到协议的 UWP 应用程序test://,并且该应用程序将自动获取该协议argument=123?other=true、对其进行解析并执行这些参数指定的操作。

期望的结果

但是,我想不使用任何协议,而是直接通过可执行文件运行该应用程序。

我尝试过的方法

到目前为止,我已经想到了以下几点:

"C:\Program Files\WindowsApps\PackageId\Windows10Universal.exe" -ServerName:ActivatableClassId

这不会传递参数,因此它不会自动执行我想要的操作。我尝试了以下方法,但也没有用:

"C:\Program Files\WindowsApps\PackageId\Windows10Universal.exe" -ServerName:ActivatableClassId "argument=123?other=true"

我也尝试使用进程监视器和进程资源管理器进行调查,看看 Windows 在后台做了什么,但似乎无法找到答案。

答案1

文章中讨论了使用参数调用 UWP/Modern 应用程序
如何从命令行打开 Windows Modern UWP 应用程序

您需要有关该应用程序的三项信息:

  • 包裹名字
    这是应用程序所在文件夹的名称(不是完整路径),例如:

    C:\Program Files\WindowsApps\microsoft.windowscommunicationsapps_16005.12827.20560.0_x64__8wekyb3d8bbwe
    
  • 发布者 ID
    例如,这是路径末尾的奇怪字符串 8wekyb3d8bbwe

  • 应用程序 ID
    在上面的文件夹中,打开文件AppxManifest.xml 并在 XML 元素中找到可执行文件名称,如下所示:

    <Application Id="microsoft.windowslive.calendar" Executable="HxCalendarAppImm.exe" EntryPoint="Executable">
    

要调用应用程序,你需要编写字符串

shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>

要将参数传递给可执行文件,请使用 Windowsstart命令。

例如,要从命令行启动 Windows 终端并打开特定的配置文件,请使用:

start "" shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App new-tab -p "GitBash"

请注意,如果没有该命令,上述命令行将无法工作start

相关内容