有没有更好的方法从控制台应用程序启动 UWP 应用程序
Is there any better way to Launch UWP apps from Console application
我尝试从 C# 控制台应用程序启动 UWP 应用程序。它尝试使用以下使用 APPID
的代码
Process.Start(@"C:\Program Files (x86)\Windows Kits\App Certification Kit\microsoft.windows.softwarelogo.appxlauncher.exe", "1a75- 6f75 - 5ed3 - 8944 - 6b7df2bee095");
有没有更好的方式以编程方式启动 UWP 应用程序。
要在系统上启动任何 UWP 应用,您可以使用以下命令 API:
AppListEntry.LaunchAsync Method
要获取所需应用程序的 AppListEntry,请使用 PackageManager APIs:
PackageManager.FindPackageForUser(String, String) Method
Package.GetAppListEntriesAsync Method
或者,您可以使用以下 Win32 API 代替 AppListEntry API:
IApplicationActivationManager::ActivateApplication method
我尝试通过协议启动 UWP 应用程序。以下 link 将帮助您创建协议
Automate launching Windows 10 UWP apps
现在您可以使用
启动您的应用程序
Process.Start("URL:myapplication://");
进程 class 在 System.Diagnostics 中可用。并且还需要在App.xaml.cs文件
中添加如下方法
protected override void OnActivated(IActivatedEventArgs args)
{
Initialize(args);
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
// Create a Frame to act as the navigation context and navigate to the first page
rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
// Place the frame in the current Window
Window.Current.Content = rootFrame;
}
// Always navigate for a protocol launch
rootFrame.Navigate(typeof(MainPage), eventArgs.Uri.AbsoluteUri);
// Ensure the current window is active
Window.Current.Activate();
}
}
当你的控制台应用程序是用一些奇特的语言编写的,例如Java,你可以做类似
的事情
https://www.c-sharpcorner.com/article/launch-uwp-app-via-commandline/
为了获得更好的结果,请忽略这两个属性:
<!-- Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$"-->
然后进行as described here.
我尝试从 C# 控制台应用程序启动 UWP 应用程序。它尝试使用以下使用 APPID
的代码Process.Start(@"C:\Program Files (x86)\Windows Kits\App Certification Kit\microsoft.windows.softwarelogo.appxlauncher.exe", "1a75- 6f75 - 5ed3 - 8944 - 6b7df2bee095");
有没有更好的方式以编程方式启动 UWP 应用程序。
要在系统上启动任何 UWP 应用,您可以使用以下命令 API:
AppListEntry.LaunchAsync Method
要获取所需应用程序的 AppListEntry,请使用 PackageManager APIs:
PackageManager.FindPackageForUser(String, String) Method
Package.GetAppListEntriesAsync Method
或者,您可以使用以下 Win32 API 代替 AppListEntry API:
IApplicationActivationManager::ActivateApplication method
我尝试通过协议启动 UWP 应用程序。以下 link 将帮助您创建协议
Automate launching Windows 10 UWP apps
现在您可以使用
启动您的应用程序Process.Start("URL:myapplication://");
进程 class 在 System.Diagnostics 中可用。并且还需要在App.xaml.cs文件
中添加如下方法 protected override void OnActivated(IActivatedEventArgs args)
{
Initialize(args);
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
// Create a Frame to act as the navigation context and navigate to the first page
rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
// Place the frame in the current Window
Window.Current.Content = rootFrame;
}
// Always navigate for a protocol launch
rootFrame.Navigate(typeof(MainPage), eventArgs.Uri.AbsoluteUri);
// Ensure the current window is active
Window.Current.Activate();
}
}
当你的控制台应用程序是用一些奇特的语言编写的,例如Java,你可以做类似
的事情https://www.c-sharpcorner.com/article/launch-uwp-app-via-commandline/ 为了获得更好的结果,请忽略这两个属性:
<!-- Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$"-->
然后进行as described here.