#c# #uwp
#c# #uwp
Вопрос:
Я могу запустить встроенный калькулятор Microsoft через мой UWP с
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-calculator:settings"));
Как я могу сделать то же самое с таким приложением, как Notepad, которое не является одним из приложений Microsoft по умолчанию? Я попытался преобразовать путь к exe в uri через:
var uri = new System.Uri("C:\Windows\System32\notepad.exe");
var converted = uri.AbsoluteUri;
а затем запустите Windows.System.Launcher.LaunchUriAsync(new Uri(converted));
, но это не сработало.
Ответ №1:
Используйте Windows.Система.Лаунчер.LaunchUriAsync для запуска Notepad в UWP
Боюсь, вы не сможете запустить приложение Win32, указав путь к приложению с платформы UWP. LaunchUriAsync
может использоваться только для запуска приложения, в котором зарегистрирован протокол.
В настоящее время существует обходной путь, который использует desktop-bridge для запуска расширения desktop, а затем вызывает Process.Start(String path)
для запуска Notepad. Для получения более подробной информации, пожалуйста, найдите UWP с расширением для рабочего стола, часть 2.
Ответ №2:
Вам нужно либо экранировать свои
s, либо добавить к строке @
, вот так.
var uri = new System.Uri(@"C:WindowsSystem32notepad.exe");
var uri = new System.Uri("C:\Windows\System32\notepad.exe");
Комментарии:
1. Я использовал «\», но по какой-то причине, когда я публикую вопрос в Stack Overflow, он преобразует их обратно в «»