设备Lock的两种方式
在闲置手机的时候,有时需要确保其不会被以其他方式误操作,否则误点了无数的订阅服务,那你可要自己掏腰包缴费啦。
下面介绍两种方式的来确保设备不会被误操作。
1. keybd_event方式
原型:
该函数模拟一次键盘行为。
每次操作都调用2次keybd_event(如果是组合键,如shift+A,就是2n次)来完成一次模拟操作!
第一次是按下键,只需传递一个键值和一个非KEYEVENTF_KEYUP的状态(一般是KEYEVENTF_KEYDOWN)。
第二次是传递该键值和KEYEVENTF_KEYUP标志,表示松开按键。
这里还有一个常用的状态标志是使用KEYEVENTF_SILENT(0x4)标志,表示模拟击键而不产生常规按键时敲击的“嘟”声音。
参考:黄季冬《再谈Windows Mobile上的模拟按键操作》
2. SHDeviceLockAndPrompt 方式
参考: http://msdn.microsoft.com/en-us/library/bb160713.aspx
HRESULT SHDeviceLockAndPrompt();
该函数只有在WM6 Classic, Professinal或Standard 版本及其以后的版本才可以使用。
该函数返回一个HRESULT值,其实就是一个int值。如果Lock成功,返回S_OK(值为0);返回其他值表示失败!
注意:
1. 即使返回0,也不能确保设备被用户成功的Unlock或Lock,只能说明Unlock和Lock的进程被启动了。
2. 该函数是特权函数,因此如果要想发布拥有该函数的版本就一定要购买MS的特权签名。
3. 在调用该函数时,需要在:Start - Settings - Personal - Lock - Password 选中"Prompt if device unused for ",设置启动时间和密码;否则你会发现调用该函数并没有什么反映,如果你设置了"Owner
Information",那么最多就是显示你的个人信息,并不会锁定!
public static extern int SHDeviceLockAndPrompt();
__________
截图: 测试环境 Sony Ericsson X1(WM6.1)
前三张图片为keybd_event方式调用的Lock,图一为程序初始界面,图二为已经调用Lock,图三为点击完图二的Unlock后进入的界面。
图四为调用SHDeviceLockAndPrompt函数进入的界面,需要输入密码,不过事先要按照第三点注意进行设置
__________
源代码下载:
DeviceLockAndPrompt.rar
--------------------------------------------------
李森 – listen |
声明: Announce: |
posted on 2009-09-21 10:30 listenlisten 阅读(948) 评论(2) 编辑 收藏 举报