这个标题真是取得我都以为蛋疼。。微软更名狂魔搞得我都不知道要叫哪一个好。。windows
这边记录一下本身的桌面程序跟windows store app交互的过程。安全
因为某些缘由,微软的商店应用的安全沙箱致使不少事情没法作到,所以额外作了一个.NET桌面引擎来辅助,那么如今就须要让这两个不一样环境的程序进行交互.app
第一步:在桌面应用引擎中,唤醒商店应用。ide
根据MSDN解释,这边最简单的办法是使用协议(URI protocol)来解决。spa
1:打开程序的Package.appxmanifest,在声明中添加协议orm
名称中添加的协议就是你你要的xml
例如:bingnews:// blog
能够打开bing新闻ip
这个名称就是前面的红字部分string
咱们试试输入weipaisuperbar
添加完协议后,
在App.xaml.cs中对引入的协议内容作处理
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs protocolArgs =
args as ProtocolActivatedEventArgs;
var rootFrame = new Frame();
rootFrame.Navigate(typeof(BlogItems), args);
Window.Current.Content = rootFrame;
}
Window.Current.Activate();
}
转过来的就自动导航到BlogItems页面去
OK,如今来试试吧,直接运行里输入weipaisuperbar://Whatever
如今已经完成了这个app的启动方式了,接着到WINFORM那边写入代码试试。
启动代码也很简单
Process.Start("weipaisuperbar://Whatever");
这样winform启动商店应用的问题就解决了。
第二步,winform读取商店应用的配置文件。
因为安全沙箱,因此捏你也别想着去读取商店应用的根目录,也没有啥注册表的权限,因此要跟外部程序交互请使用
Roaming(可漫游数据,用户更换设备后登录帐号还能够继续漫游回来)
Local(只在本地使用)
能帮咱们漫游数据固然最好了,咱们就用这个作例子
//初始化配置文件 string _Name = "settings.xml"; Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.RoamingFolder; //建立文件 var _File = await storageFolder.CreateFileAsync(_Name, Windows.Storage.CreationCollisionOption.ReplaceExisting);
OK,这样在C:\Users\用户名\AppData\Local\Packages\程序名\RoamingState里面就会有settings.xml这个文件了,接下来读写都简单了吧