启动Windows 10存储应用程序

Tom*_*Tom 6 c# windows-10

我正在寻找一种从C#在Windows 10/8.1上启动/运行Windows应用商店应用的方法.

我试图运行的应用程序的示例是

  1. 计算器
  2. 相片
  3. 设置

注意:在Windows 10中,这些不再是标准的.exe文件,可以通过双击或调用Process.Start()来执行,因为它们现在是Windows应用商店.

我曾尝试使用IApplicationActivationManager但我找不到合适的文档,并提供了如何使用它的示例.

Pey*_*idi 11

我找到了一种很酷的方法来运行通过 Windows 应用商店下载或预安装的每个 Windows 通用应用程序。每个 Windows 10 通用应用程序都有一个AUMID代表“应用程序用户模型 ID”。

用于获取所有 AUMID 的PowerShell命令:

get-StartApps
Run Code Online (Sandbox Code Playgroud)

输出:

PS C:\> get-StartApps

Name                      AppID
----                      -----
Skype                     Microsoft.SkypeApp_kzf8qxf38zg5c!App
Snip & Sketch             Microsoft.ScreenSketch_8wekyb3d8bbwe!App
Mail                      microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w...
Calendar                  microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w...
Movies & TV               Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo
OneNote for Windows 10    Microsoft.Office.OneNote_8wekyb3d8bbwe!microsoft.onenoteim
Photos                    Microsoft.Windows.Photos_8wekyb3d8bbwe!App
Video Editor              Microsoft.Windows.Photos_8wekyb3d8bbwe!SecondaryEntry
Maps                      Microsoft.WindowsMaps_8wekyb3d8bbwe!App
Alarms & Clock            Microsoft.WindowsAlarms_8wekyb3d8bbwe!App
Voice Recorder            Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App
Feedback Hub              Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe!App
Xbox Game Bar             Microsoft.XboxGamingOverlay_8wekyb3d8bbwe!App
Camera                    Microsoft.WindowsCamera_8wekyb3d8bbwe!App
Microsoft Store           Microsoft.WindowsStore_8wekyb3d8bbwe!App
Weather                   Microsoft.BingWeather_8wekyb3d8bbwe!App
Cortana                   Microsoft.549981C3F5F10_8wekyb3d8bbwe!App
Instagram                 Facebook.InstagramBeta_8xx8rvfyw5nnt!Instagram
...
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过其 AUMID 启动任何通用应用程序,如下所示:

explorer shell:appsfolder\[AUMID]
Run Code Online (Sandbox Code Playgroud)

例如,如果您想执行Skype

explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App
Run Code Online (Sandbox Code Playgroud)

现在是时候回到 Csharp 了:

Process.Start("explorer shell:appsfolder\Microsoft.BingWeather_8wekyb3d8bbwe!App");
Run Code Online (Sandbox Code Playgroud)

Windows Weather应用程序将执行。

  • 这是一个很好的解决方案。遵循另一个基于注册表的操作非常乏味,而且我的 Microsoft Store WSL Ubuntu 安装甚至不在那里。它是由您的 PS get 命令列出的,并且使用具有相关名称的资源管理器模板可以在命令行和“Process.Start()”中完美运行。 (2认同)

Pat*_*man 7

有几种方法可以做到这一点.最简单的方法是使用Process.StartURL或文件处理程序.

例如,这将打开视频应用程序:

Process.Start("microsoftvideo://");
Run Code Online (Sandbox Code Playgroud)

或更新页面上的商店:

Process.Start("ms-windows-store:updates");
Run Code Online (Sandbox Code Playgroud)

或照片应用程序:

Process.Start("ms-photos://");
Run Code Online (Sandbox Code Playgroud)

还有几个手柄,其中一些可以在这里找到.您可以在打开注册表项时找到这些名称HKEY_CLASSES_ROOT\Extensions\ContractId\Windows.Protocol\PackageId.寻找CustomProperties钥匙.它有一个属性Name.这是一个使用.

在SU上可以找到一些其他有用的指针:如何从Windows 8中的命令行运行Metro-Application?.