我的LUMIA925已经买了很久了,想自己开发WP应用放在上面,却一直想不到有什么特别的想法和需要。前几天的事情正好让我有了这个机会。

  前几天在客户机房工作的时候,同事打电话来说另一个客户由于换了电脑,需要发新的激活码过去激活我们的软件。我不得不打开本本,把同事发到手机QQ的机器码输入到本本上的注册机程序里,再把生成的激活码输入到手机发过去。对于在外面本本不能上网的情况这真是一件繁琐的事。晚上在家没事的时候就想着把这个注册机移植到我的LUMIA925上。安装VS补丁和激活手机开发的步骤就不赘述了,具体百度之。我在VS2013中选择的是Windows Phone应用中的空白应用。

  先贴个图演示一下winform版注册机,实际用到的就是两个Label、两个TextBox和一个Button,用到的激活码生成算法也很简单,就是对机器码做一个加salt的MD5操作。

  对照winform版的界面,再考虑手机操作的便捷性,最后WP版的效果就是这样的:

  winform中的label替换成了WP中的TextBlock,另外再添加了两个AppBarButton,作为“清除”和“复制”的按钮。

  然后开始写代码,却发现一下掉到两个坑里了。。。

  坑1:WP8.1中没有默认提供MD5CryptoServiceProvider类,只能自己实现。还好在网上搜到了前人写好的,直接下载添加就可以用了。

  坑2:WP8.1应用商店APP竟然不支持对剪贴板的操作!!没办法,最后采用的是点击“复制”按钮,自动全选激活码并弹出Toast通知,代码如下:

private void btnCopy_Click(object sender, RoutedEventArgs e)
{
txtActivationCode.Focus(FocusState.Programmatic);
txtActivationCode.SelectAll(); XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01); // 找到模板中“'text'”元素,然后添加通知的内容 XmlNodeList elements = toastXml.GetElementsByTagName("text"); elements[0].AppendChild(toastXml.CreateTextNode("激活码已全选,请手动复制!")); // 通过通知的模板创建一个Toast通知 ToastNotification toast = new ToastNotification(toastXml); // 弹出通知 ToastNotificationManager.CreateToastNotifier().Show(toast); }

  注意1:与winform不同,在使用TextBox.SelectAll方法之前,必须先对TextBox设置焦点;

  注意2:.程序中使用Toast通知,需要在创建应用程序包之后自动生成的Package.appxmanifest中“支持Toast通知”选择“是”。效果如下:

  终于做好了我的第一个WP应用,总算对得起我的925了,只可惜复制功能还是有缺陷,只能期望WP10里能够修正这个问题。

我的第一个WP8.1应用总结的更多相关文章

  1. 第一个WP8程序,照相机

    安装win8 64位,vs2013(包含wp8 sdk),百度各种得到学生开发者账户之后,终于可以试一下将自己的app部署到手机上的感觉了. 首先来个简单练练手的照相机功能 照相 即从主界面进入到照相 ...

  2. 我的第一个wp8小程序

    一:截图,功能介绍:点击音乐红色按钮,播放铃声 二:代码 XAML代码 <phone:PhoneApplicationPage x:Class="PhoneApp1.MainPage& ...

  3. 如何发布第一个WP8.1程序(VisualStudio2015)

    学习WP开发有一段时间了,近一个月开始着手开发程序,并在开发程序中不断地学习(有一定的基础后,边开发程序,边学习是很好的,能练习运用所学的知识,并能在遇到问题后上网上资料不断地学习,很有效果,因为老是 ...

  4. 跨过几个坑,终于完成了我的第一个Xamarin Android App!

    时间过得真快,距离上次发随笔又是一年多.作为上次发的我的第一个WP8.1应用总结的后继,这次同样的主要功能,改为实现安卓版APP.前几个月巨硬收购Xamarin,把Xamarin集成到VS里了,大大方 ...

  5. Wp8开发环境搭建总结

    原地址:http://blog.csdn.net/lixing732100721/article/details/8564985 注意:技术发展太快  此文章年代已久  请大家酌情参照 系统要求(来自 ...

  6. Cordova WP8 平台安装部署

    原文:Cordova WP8 平台安装部署 Cordova是一个开放源码移动开发框架. 它允许您使用标准的 web 技术如 HTML5. CSS3 和 JavaScript 进行跨平台开发,避免每个移 ...

  7. Cordova WP8 插件开发

    原文:Cordova WP8 插件开发 前面博客中介绍了Cordova WP8平台上的安装部署,Cordova扩展可以利用WP8本地代码扩展WebApp的功能,调用本地能力需要开发相应的插件,下面以闪 ...

  8. Windows Phone 8.1 开发技术概览 (Universal APP)

    前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Univ ...

  9. MVVM-Sidekick 之SendToEventRouterAction使用

    在WP开发中点击列表项跳转到详情页是一个很常用的功能,但是有可能项模板中还有其他的区域,比如点击标题跳转到详情页,点击"赞"图标送一个赞,点击"踩"图标踩一下, ...

随机推荐

  1. ubuntu死机怎么办

    在使用ubuntu的时候由于各种复杂的因素,如软件不兼容,误操作等问题导致"死机"怎么办呢?下面我们来看看如何解决这问题...   可以打开终端模拟器   1 ctrl+alt+t ...

  2. SOA 面向服务的体系结构

    SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...

  3. javascript 要点

    javascript 要点 1 JavaScript:写入 HTML 输出 document.write("<h1>This is a heading</h1>&qu ...

  4. ubuntu 彻底卸载软件

    找到此软件名称,然后sudo apt-get purge ......(点点为为程序名称),purge参数为彻底删除文件,然后sudo apt-get autoremove,sudo apt-get ...

  5. OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)

    20150716 Created By BaoXinjian

  6. 网页制作过程中div定位的三个问题

    这几天要做单位的网站,对于做网站我也不怎么样,于是我便在网上参考了一个比较满意的网站,套一下来把这个工作结束了.在此期间遇到了三个关于div定位问题, 一般网站用div布局时都是从上到下分head . ...

  7. SearchBar 修改 cancel button 文字 及颜色

    #pragma mark - - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{ _searchController.searchB ...

  8. Python爬虫 网页图片

    一 概述 参考http://www.cnblogs.com/abelsu/p/4540711.html 弄了个Python捉取单一网页的图片,但是Python已经升到3+版本了.参考的已经失效,基本用 ...

  9. javascript面向对象之一

    问题:怎么动态设置和读取一个对象的属性?   <script type="text/javascript"> function User(property){ for( ...

  10. linux pxe+dhcp+nfs+tftp

    yum -y install vsftpd dhcp xinetd tftp-server syslinux(安装"syslinux"才有pxelinux.0) tftp 服务(v ...