在桌面程序上和Metro/Moder/Windows store app的交互(相互打开,配置读取)
2015-02-18 01:59
337 查看
这个标题真是取得我都觉得蛋疼。。微软改名狂魔搞得我都不知道要叫哪个好。。
这边记录一下自己的桌面程序跟windows store app交互的过程。
由于某些原因,微软的商店应用的安全沙箱导致很多事情无法做到,因此额外做了一个.NET桌面引擎来辅助,那么现在就需要让这两个不同环境的程序进行交互.
第一步:在桌面应用引擎中,唤醒商店应用。
根据MSDN解释,这边最简单的办法是使用协议(URI protocol)来解决。
1:打开程序的Package.appxmanifest,在声明中添加协议
名称中添加的协议就是你你要的
例如:bingnews://
可以打开bing新闻
这个名称就是前面的红字部分
我们试试输入weipaisuperbar
添加完协议后,
在App.xaml.cs中对引入的协议内容做处理
转过来的就自动导航到BlogItems页面去
这样winform启动商店应用的问题就解决了。
第二步,winform读取商店应用的配置文件。
由于安全沙箱,所以捏你也别想着去读取商店应用的根目录,也没有啥注册表的权限,所以要跟外部程序交互请使用
Roaming(可漫游数据,用户更换设备后登陆账号还可以继续漫游回来)
Local(只在本地使用)
能帮我们漫游数据当然最好了,我们就用这个做例子
OK,这样在C:\Users\用户名\AppData\Local\Packages\程序名\RoamingState里面就会有settings.xml这个文件了,接下来读写都简单了吧
这边记录一下自己的桌面程序跟windows store app交互的过程。
由于某些原因,微软的商店应用的安全沙箱导致很多事情无法做到,因此额外做了一个.NET桌面引擎来辅助,那么现在就需要让这两个不同环境的程序进行交互.
第一步:在桌面应用引擎中,唤醒商店应用。
根据MSDN解释,这边最简单的办法是使用协议(URI protocol)来解决。
1:打开程序的Package.appxmanifest,在声明中添加协议
名称中添加的协议就是你你要的
例如:bingnews://
可以打开bing新闻
这个名称就是前面的红字部分
我们试试输入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这个文件了,接下来读写都简单了吧
相关文章推荐
- Metro App/Windows 8 递归读取"我的音乐"目录下的所有音频文件
- Windows store app[Part 1]:读取U盘数据
- 第一篇 Windows 8 开发Windows Metro style app环境配置
- Windows store app[Part 1]:读取U盘数据
- 第一篇 Windows 8 开发Windows Metro style app环境配置
- windows 8 metro app 读取本地json的方法
- flex 读取配置文件 与PHP交互 圆饼图
- (转)Windows Form Application 读取并修改App.config文件
- 如何配置及读取App.config文件
- 指定文件名读取WEB-INFO目录下properties配置(windows平台)
- [dotNET]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value
- C#读取app.config配置文件中的connectionString节点
- 读取和修改App.config配置文件
- vb.net 无法读取app.config中的配置参数的解决方式
- Windows 8:Metro style app development
- windows metro app 学习中心
- C# 读取保存App.config配置文件的完整源码参考
- remoting作成windows服务后一直无法读取配置文件,可能的原因之一。
- [dotNET]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value
- 记录下vs2008 读取 App.config 配置文件