У меня есть скрипт 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 из командной строки.
Выполните следующую команду PowerShell
получить-appxpackage > Результат.txt
Перейдите
%UserProfile%
и откройтеРезультат.txt- ОбозначитьУстановитьРасположениедля
Windows Calculator
. - ОбозначитьИмяСемействаПакетадля
Windows Calculator
. - Перейдите в папку InstallLocation с помощью проводника.
- Откройте AppManifest.xml с помощью Блокнота
- ОбозначитьИдентификатор приложениядля Windows Calculator. Обычно я ищуИсполняемыйприложения UWP, которое я пытаюсь запустить.
- Бывают случаи, когда несколько пакетов UWP будут существовать в одной папке. Это означает, что
AppManifest.xml
будет обрабатываться несколько исполняемых файлов.
- Бывают случаи, когда несколько пакетов UWP будут существовать в одной папке. Это означает, что
В командной строке введите следующее:
explorer.exe shell:appsFolder\Microsoft.WindowsCalculator_8wekyb3d8bbwe!App
Если вы нашли правильныйИдентификатор приложениядля приложения запустится калькулятор 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 можно улучшить:
- В диалоговом окне «Выполнить» Windows ( Win+ R) запустите
shell:AppsFolder
- Найдите нужную заявку в папке
- Щелкните правой кнопкой мыши и выберите «Создать ярлык».
- Скажите «Да», чтобы «поместить ярлык на рабочий стол».
- Щелкните правой кнопкой мыши по ярлыку и выберите «Свойства».
- Запись в поле «Цель» — это нужный вам идентификатор.
- Скопируйте идентификатор (если можете)
Теперь приложение можно вызвать следующими способами:
explorer.exe shell:appsFolder\app-id
Если вы не можете скопировать поле «Цель» и у вас нет продукта, который может его подобрать (я использовалCapture2Text), вы можете использовать либо процедуру Ramhound, либо ту, что описана в статье Запуск приложения «Магазин» Windows 10 из командной строки.