随笔 - 249  文章 - 1  评论 - 1207  阅读 - 61万

在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显示出来?

    这个可以通过FormActivated事件来解决,即在该事件中,把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

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

 

参考链接:

1Managed Services for Windows Mobile

2Automatically Starting Your Application on Windows Mobile

posted on   施炯  阅读(2782)  评论(14编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2009-07-30 美化Windows Mobile上的自定义数据表
< 2010年7月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示