gpt4 book ai didi

c# - 如何将字符串传递给 UWP 应用程序并从 Windows 窗体应用程序启动它

转载 作者:行者123 更新时间:2023-11-30 13:53:46 25 4
gpt4 key购买 nike

official MSDN document介绍如何在通用 Windows 平台 (UWP) 应用之间共享数据。但是我们可以将字符串从 Windows Forms 传递给 UWP 应用程序吗?应用程序并启动 UWP Windows 窗体应用程序中的应用程序?我没有找到任何关于这种情况的文件。我使用的是 C#,但在这种情况下语言并不重要。

注意:在我们的例子中,它是一个长字符串,其中包含 Windows Forms 应用想要传递给使用该数据的 UWP 应用的数据。

最佳答案

最简单的方法是使用自定义 URI 方案,然后使用该方案启动应用。

注册和处理自定义 URI 在 official UWP documentation 中有详细描述。 ,所以我鼓励您遵循这一点。简而言之,您首先在 Package.appxmanifest 中注册自定义 URI 方案,然后覆盖 App.xaml.cs 中的 OnActivated 并检查是否IActivatedEventArgs.KindActivationKind.Protocol。然后将 IActivatedEventArgs 转换为 ProtocolActivatedEventArgs 并使用其 Uri 属性访问启动的 URI。

在 Windows 窗体方面,您只需启动 URI,这将导致 UWP 应用程序启动/激活。为此,您可以使用 URI 启动一个进程:

var url = "myapp:?someparam=somevalue";
var psi = new ProcessStartInfo();
psi.UseShellExecute = true;
psi.FileName = url;
Process.Start(psi);

通过在 URI 中使用查询字符串参数,您可以使用 URI 将任何 string 值传递给 UWP 应用程序。您可以在 UWP 应用程序的 OnActivated 方法中阅读它们。

当然,这不是唯一的解决方案,因为您现在还可以在 Windows 窗体中使用 UWP API,因此您可以使用应用服务在两个应用之间传递数据。但是,如果您只需要单向通信,自定义 URI 就是一种方式。

替代方法 - 应用执行别名

自 build 16226 以来,UWP 支持应用程序执行别名,它允许您声明一个系统范围的应用程序名称,该名称可用于从系统中的任何位置从命令行启动应用程序。您可以阅读更多相关信息 in this blogpost .这样,您可以直接通过名称启动应用程序,并将参数作为进程参数传递。

关于c# - 如何将字符串传递给 UWP 应用程序并从 Windows 窗体应用程序启动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52298606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com