Можно ли запустить приложение Windows из другой программы или командной строки, не меняя настройки папки WindowsApps?

Можно ли запустить приложение Windows из другой программы или командной строки, не меняя настройки папки WindowsApps?

У меня есть скрипт nodeJS, который работает через SVG-файл Inkscape и экспортирует определенные слои с помощью этой команды:

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

Однако на моей новой системе я установил inkscape через Windows Store, и теперь исполняемый файл находится где-то в C:\ProgramFiles\WindowsApps, который недоступен. Я мог бы изменить разрешения, но я полагаю, что папка заблокирована по веской причине.

Есть ли способ запустить приложение Windows без доступа к этой папке? Мне нужно решение, которое работает для большинства приложений, а не только для Inkscape.

решение1

Примечание:

Для создания этого ответа вместо использованияИнкскейп, я использовал приложение UWPКалькулятор Windows.

Однако на моей новой системе я установил Inkscape через Windows Store, и теперь исполняемый файл находится где-то в C:\ProgramFiles\WindowsApps, который недоступен. Я мог бы изменить разрешения, но я полагаю, что папка заблокирована по веской причине.

Если изменить разрешения для WindowsApps на какие-либо значения, отличные от значений по умолчанию, результаты будут непредсказуемыми, и приложения UWP перестанут работать.

Есть ли способ запустить приложение Windows без доступа к этой папке?

Действительно, можно запустить приложение UWP из командной строки.

  1. Выполните следующую команду PowerShell

    получить-appxpackage > Результат.txt

  2. Перейдите %UserProfile%и откройтеРезультат.txt

  3. ОбозначитьУстановитьРасположениедля Windows Calculator.
  4. ОбозначитьИмяСемействаПакетадля Windows Calculator.
  5. Перейдите в папку InstallLocation с помощью проводника.
  6. Откройте AppManifest.xml с помощью Блокнота
  7. ОбозначитьИдентификатор приложениядля Windows Calculator. Обычно я ищуИсполняемыйприложения UWP, которое я пытаюсь запустить.
    • Бывают случаи, когда несколько пакетов UWP будут существовать в одной папке. Это означает, что AppManifest.xmlбудет обрабатываться несколько исполняемых файлов.
  8. В командной строке введите следующее:

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

  9. Если вы нашли правильныйИдентификатор приложениядля приложения запустится калькулятор Windows.

Место установки приложений UWP не статично, по мере выпуска новых версий их местоположение будет меняться. Поэтому, следуя этому руководству, я определил, что текущееИмяСемействаПакетаКалькулятор Windows был Microsoft.WindowsCalculator_8wekyb3d8bbweиИдентификатор установкибылAPP

Это будет работать для любого приложения UWP, поэтому я повторил процесс для Windows Live Calendar и выполнил команду, explorer.exe shell:appsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendarв результате которой запустился Windows Calendar.

решение2

Хотя ответ @Ramhound довольно полный, часть обнаружения установленного в Магазине приложения UWP можно улучшить:

  1. В диалоговом окне «Выполнить» Windows ( Win+ R) запустите shell:AppsFolder
  2. Найдите нужную заявку в папке
  3. Щелкните правой кнопкой мыши и выберите «Создать ярлык».
  4. Скажите «Да», чтобы «поместить ярлык на рабочий стол».
  5. Щелкните правой кнопкой мыши по ярлыку и выберите «Свойства».
  6. Запись в поле «Цель» — это нужный вам идентификатор.
  7. Скопируйте идентификатор (если можете)
  8. Теперь приложение можно вызвать следующими способами:

     explorer.exe shell:appsFolder\app-id
    

Если вы не можете скопировать поле «Цель» и у вас нет продукта, который может его подобрать (я использовалCapture2Text), вы можете использовать либо процедуру Ramhound, либо ту, что описана в статье Запуск приложения «Магазин» Windows 10 из командной строки.

Связанный контент