首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

怎么防止程序重复启动(Windows Mobile 5.0,NET CF 2.0)

2012-01-21 
如何防止程序重复启动(Windows Mobile 5.0,.NET CF 2.0)在Windows Mobile 5.0手机上开发.NET CF 2.0应用,

如何防止程序重复启动(Windows Mobile 5.0,.NET CF 2.0)
在Windows Mobile 5.0手机上开发.NET CF 2.0应用,开发语言是C#。如果点击文件名启动一个应用时,连续快速点击两次,那么会启动两个相同的应用,我在Google上搜到的方法都是.NET下的C#语言实现的,有很多的函数在.NET CF下不支持。请问可以有什么办法防止重复启动?谢谢!

[解决办法]
方法很多
说一个简单的
你的程序启动时,首先检查是否存在一个临时文件,这个文件你可以放在你程序的启动目录下,假设名为$run
if (File.Exists(sProgStartDir + "$run"))
//sProgStartDir 为获取你程序启动的路径的字符串
Application.Exit(); //检测到有这个临文件存在,说明该程序已经启动,则退出这个新启动的
else
{
File.Create(sProgStartDir + "$run", 4, FileOptions.DeleteOnClose);
//如果不存在,则建立这个临时文件,这个文件会随程序结束时自动删除
}

当然,你可以想到更好的办法,呵呵
或者不用文件,用注册表,启动了,就在注册表里临时建一个,程序结束,就删除这个临时建,检查重复也靠这个临时建

要给分哦
[解决办法]
Mobile本身好象就是不允许同一个程序重复启动的吧。至少,我自己的感觉,是这样的,一个已经启动的程序,如果你再去点击启动的话,他会把先前那个已经启动的程序激活。

如果你真的是需要这个功能,可以参考下这个:
http://www.vckbase.com/document/viewdoc/?id=344

不过这个是C++里面的做法。
[解决办法]
用本地代码的话,就是findwindow
其实也可以用呀。

[解决办法]
据我所知,wm5是不允许重复起一个程序的。如果要达到可控行,可以监测窗口的title或者某些固定属性
[解决办法]
WTL里有实现,不过用的是API,不是.NET CF.

热点排行