Nano Hash - криптовалюты, майнинг, программирование

Запущены ли приложения по URI в приложении UWP в песочницу?

Я унаследовал приложение UWP, и меня попросили добавить кнопку для запуска стороннего приложения. Стороннее приложение построено на Qt и имеет исполняемый файл в качестве основной программы, которая запускает второй исполняемый файл, который действует как служба. Приложение UWP будет запускаться на планшетах под управлением Windows 10.

Я создал установщик, который добавляет значения реестра для URI для стороннего приложения, чтобы я мог выполнить активацию URI (метод LaunchUriAsync). Если я изменю цель URI на другое приложение, он будет работать нормально, поэтому я знаю, что URI настроен правильно.

Когда я нажимаю кнопку, стороннее приложение не открывается. Я использовал ProcMon, чтобы увидеть, что происходит, и подтвердил, что он начинает открываться, но затем останавливается перед запуском второго exe. В журнал событий ничего не записывается, потому что это было бы слишком полезно.

Я не нашел никакой документации по этому поводу, но должен предположить, что приложение, запущенное из приложения UWP, также находится в песочнице. Кто-нибудь знает, правильно ли это? Я не уверен, что делать, кроме как перестроить приложение как WPF или что-то в этом роде, и это не очень привлекательно.


  • преобразовать другую программу для настольных ПК в Магазин приложений через рабочий стол Bride, установите настольную программу через appx и попробуйте запустить преобразованное приложение через LaunchUriAsync. 13.02.2018
  • @ magicandre1981 Я попробовал ваше предложение, но приложение все еще не открывается. 14.02.2018
  • Мне удалось запустить свое стороннее приложение, создав новое консольное приложение для запуска UWP, которое затем запускает для него новый процесс: var proc = new Process(); proc.StartInfo.FileName = filePath; proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(filePath); proc.Start(); proc.WaitForExit(); var exitCode = proc.ExitCode; proc.Close(); Требуется рабочий каталог, и из UWP я не вижу способа его установить. 20.02.2018
  • хорошо, опубликуйте свое исправление в качестве ответа, чтобы другим было легче его увидеть. Не все пользователи смотрят комментарии. 21.02.2018

Ответы:


1

Ответ на ваш вопрос: нет, они не запускаются в песочнице.

Запуск приложения, которое работает с полным доверием из UWP по протоколу, является поддерживаемым сценарием (например, так работает составление электронной почты, если Outlook является вашим поставщиком mailto: по умолчанию).

Я подозреваю, что чего-то не хватает в вашей регистрации протокола или в том, как вы ее вызываете, но в вопросе недостаточно подробностей для устранения неполадок.

13.02.2018
  • Спасибо. Я отправлю еще один вопрос с более подробной информацией. 14.02.2018

  • 2

    Мне удалось запустить стороннее приложение, создав новое консольное приложение для запуска UWP, которое затем запускает для него новый процесс.

    Консольное приложение выглядит так:

    var proc = new Process(); 
    proc.StartInfo.FileName = filePath; 
    proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(filePath); 
    proc.Start(); 
    proc.WaitForExit(); 
    var exitCode = proc.ExitCode; 
    proc.Close(); 
    

    Требовался "WorkingDirectory", и я не вижу способа установить это в UWP.

    21.02.2018
  • не могли бы вы добавить более подробную информацию к своему ответу? 14.01.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..