是否可以在不更改 WindowsApps 文件夹设置的情况下从另一个程序或命令行运行 Windows 应用程序?

是否可以在不更改 WindowsApps 文件夹设置的情况下从另一个程序或命令行运行 Windows 应用程序?

我有一个 nodeJS 脚本,它可以运行 Inkscape SVG 文件并使用以下命令导出某些图层:

  inkscape.exe "myfile.svg" -i ${id} -j -C --export-png="${outPath}"

但是在我的新系统上,我通过 Windows 应用商店安装了 inkscape,现在可执行文件位于 中的某个位置C:\ProgramFiles\WindowsApps,无法访问。我可以更改权限,但我想文件夹被锁定是有原因的。

有没有办法在不访问该文件夹的情况下运行 Windows 应用程序?我想要适用于大多数应用程序(而不仅仅是 Inkscape)的解决方案。

答案1

笔记:

为了创建这个答案,不要使用Inkscape,我使用了 UWP 应用程序Windows 计算器

但是在我的新系统上,我通过 Windows 应用商店安装了 Inkscape,现在可执行文件位于 C:\ProgramFiles\WindowsApps 的某个位置,无法访问。我可以更改权限,但我想文件夹被锁定是有原因的。

如果将 WindowsApps 的权限更改为默认权限以外的任何权限,则结果将不确定,并且 UWP 应用程序将停止运行。

有没有办法无需访问该文件夹即可运行 Windows 应用程序?

确实可以从命令提示符运行 UWP 应用程序。

  1. 运行以下 PowerShell 命令

    获取 appxpackage > 结果.txt

  2. 导航至%UserProfile%并打开结果.txt

  3. 确定安装位置为了Windows Calculator
  4. 确定封装系列名称为了Windows Calculator
  5. 使用文件资源管理器导航到安装位置。
  6. 使用记事本打开 AppManifest.xml
  7. 确定应用程序 ID适用于 Windows 计算器。我通常会搜索可执行文件我正在尝试启动的 UWP 应用程序。
    • 在某些情况下,同一文件夹中会存在多个 UWP 包。这意味着AppManifest.xml将处理多个可执行文件。
  8. 在命令提示符中输入以下内容:

    explorer.exe shell:appsFolder\Microsoft.WindowsCalculator_8wekyb3d8bbwe!App

  9. 如果你找到了正确的应用程序 ID然后 Windows 计算器将启动该应用程序。

UWP 应用程序的安装位置不是静态的,随着新版本的发布,它们的位置会发生变化。因此,通过遵循本指南,我确定当前封装系列名称WindowsMicrosoft.WindowsCalculator_8wekyb3d8bbwe计算器安装 ID曾是APP

这适用于任何 UWP 应用程序,因此我重复了 Windows Live 日历的过程并运行,explorer.exe shell:appsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar结果 Windows 日历启动了。

答案2

虽然 @Ramhound 的回答已经很完整了,但是发现 Store 安装的 UWP 应用程序的部分还可以改进:

  1. 在 Windows 运行对话框 ( Win+ R) 中,运行 shell:AppsFolder
  2. 在文件夹中找到相关应用程序
  3. 右键单击并选择“创建快捷方式”
  4. 对“将快捷方式放置在桌面上”说“是”
  5. 右键单击快捷方式并选择“属性”
  6. “目标”字段中的输入就是您需要的id。
  7. 复制 ID(如果可以)
  8. 现在可以通过以下方式调用该应用程序:

     explorer.exe shell:appsFolder\app-id
    

如果你无法复制“目标”字段,并且没有可以接收它的产品(我使用文本捕获),您可以使用 Ramhound 的程序,也可以使用文章中的程序 从命令行启动 Windows 10“商店应用”

相关内容