专栏首页施炯的IoT开发专栏在Windows Mobile上隐藏你的应用程序

在Windows Mobile上隐藏你的应用程序

    有时候,我们需要在Windows Mobile上做一些invisible的应用程序,使得用户无法察觉。这几天找了一些资料,请教了Jake等一些朋友,下面就做一个简单的总结。

1. 如何逃脱“任务管理器”?

大家知道,在Windows Mobile上做自己的应用程序,会在“设置->系统->内存->运行的程序”中显示出来。在Windows Mobile 6.1以后,则由“设置->系统->任务管理器”代替了。如下图1所示:

图1

    有什么方法,能够使得应用程序不显示在应用程序列表中呢?下面提供两种方法,一种是偷懒的方法,另一种是正规的方法。

A. Form设计方法

    这是一种比较偷懒的方法,为什么这么说?因为我们仅仅需要在visual studio开发环境中,对Form设计进行简单的编辑,就可以实现我们的需求。闲话少说,直接上图。如图2所示,在Form设计窗口中,选中Form,查看其Properties,就可以发现有“Text”一项,这项功能是充当Form的标题,如果我们把其中的文字“Form1”去掉,在对应的设计窗口中,我们就可以发现,Form1已经不见了。

图2

    Deploy程序到模拟器中,我们就无法在任务管理器中发现Demo的影子了。如下图3所示。

图3

    在任务管理器中是找不到我们应用程序的信息了,还有一个问题:如何让程序运行于后台,在应用程序启动的时候,不让Form显示出来?

    这个可以通过Form的Activated事件来解决,即在该事件中,把Form隐藏掉。如下图4所示,在Form的事件中,添加Activated事件响应函数如下:

private void Form1_Activated(object sender, EventArgs e)

{

this.Hide();

}

图4

B. 利用Service.exe

    和.NET Framework一样,.NET CF不提供托管类来创建Windows Services。在CodePlex上,PeterNowak,创建了一个轻量级的dll动态库,通过它,我们就可以利用托管代码来创建Windows Mobile上的Services了。具体大家可以参考文章:Managed Services for Windows Mobile。在程序运行时,我们无法在“Running Programs”中找到应用程序信息,如图5所示:

图5

    把Cellular Emulator和模拟器连接以后,在模拟器上给Cellular Emulator拨打电话,如图6所示:

图6

    利用File Explorer,在设备的“My Device”下,我们找到了phonelog.txt文件,打开该文件,我们就可以查到刚才拨打电话的信息,如图7和图8所示。

图7

图8

2. 开机自启动

如何让我们的应用程序在设备开机的时候,自动加载运行呢?在codeproject上,MVP Joel Ivory Johnson写了一篇文章《Automatically Starting Your Application on Windows Mobile》,在“A program launches at device power up”这一节中我们可以找到需要的答案。

文章提供了两种方法:

A.在设备的\Windows\StartUp文件夹中,放置应用程序的快捷方式。

B.将应用程序拷贝到设备的\Windows文件夹,然后修改注册表,在HKEY_LOCAL_MACHINE\Init中加入新的内容,如下图9所示:

图9

    这样,在设备重启时,应用程序就会自启动了。

参考链接:

1.Managed Services for Windows Mobile

2.Automatically Starting Your Application on Windows Mobile

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 美化Windows Mobile上的自定义ListView

        在移动设备上,我们经常需要列出数据给用户看,ListView是经常用到的控件。而有些时候,我们需要同时列出预览的图片和数据,所谓图文并茂,这样可以带来更...

    ShiJiong
  • Windows Mobile 6.5 开发者工具包

        在一段时间的等待之后,Microsoft终于在其下载中心开放了《Windows Mobile 6.5 开发者工具包》的下载。这对于广大Windows M...

    ShiJiong
  • Windows Mobile Ink

        在之前的文章“Signature on Pocket PC”中,是将签名作为bmp位图的格式存放在Windows Mobile设备的某一个目录下面。今天...

    ShiJiong
  • 美化Windows Mobile上的自定义ListView

        在移动设备上,我们经常需要列出数据给用户看,ListView是经常用到的控件。而有些时候,我们需要同时列出预览的图片和数据,所谓图文并茂,这样可以带来更...

    ShiJiong
  • iOS应用程序生命周期(前后台切换,应用的各种状态)详解

    iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在...

    猿人谷
  • geotools中等值面的生成与OL3中的展示

    本文讲述如何在geotools中IDW插值生成等值面,并根据给定shp进行裁剪,并生成geojson数据,以及Openlayers3中展示。

    lzugis
  • 面试官让我用channel实现sync包里的同步锁,是不是故意为难我?

    今天,我将深入探讨Go语言channel和select语句的表达能力。为了演示只用这两个原语就可以实现多少功能,我将从头开始用它们重写sync包。

    KevinYan
  • Android 必知必会 - 极简版 Leancloud 短信验证码功能

    使用 LeanCloud 的 REST API 来自定义短信验证码相关功能,不再需要臃肿的 SDK 。

    他叫自己MR.张
  • 爆款论文提出简单循环单元SRU:像CNN一样快速训练RNN(附开源代码)

    选自arXiv 机器之心编译 机器之心编辑部 近日,一篇题为《Training RNNs as Fast as CNNs》的 arXiv 论文通过有意简化状...

    机器之心
  • Android中轴旋转特效实现,制作别样的图片浏览器

    Android API Demos中有很多非常Nice的例子,这些例子的代码都写的很出色,如果大家把API Demos中的每个例子研究透了,那么恭喜你已经成为一...

    用户1158055

扫码关注云+社区

领取腾讯云代金券