资讯首页 资讯分类 使用技巧 手机硬件 软件开发
您的位置:资讯中心 - 智能手机软件开发 - Smartphone开发 - 如何在程序中关闭、重起和硬起动WCE、PPC、SP?
如何在程序中关闭、重起和硬起动WCE、PPC、SP?
日期:2005-8-3 0:01:43 人气:0     [ ]
 

关闭(suspend)

方法1:
//虚拟关机键
::keybd_event(VK_OFF, 0, 0, 0);
::keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);

方法2:
//调用未公开函数PowerOffSystem()
extern "C" __declspec(dllimport) void PowerOffSystem();


重起(soft reset)
//Soft reset the device
#include  〈winioctl.h〉

#define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)

extern "C" __declspec(dllimport) BOOL KernelIoControl(
 DWORD dwIoControlCode,
 LPVOID lpInBuf,
 DWORD nInBufSize,
 LPVOID lpOutBuf,
 DWORD nOutBufSize,
 LPDWORD lpBytesReturned);

BOOL ResetDevice()
{
 return KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL);
}

 

硬起动(hard reset)

//注意!!!使用此段代码会将您的Pocket PC的用户数据全部清空,
//请勿非法使用,用者后果自负.

#include  〈winioctl.h〉

#define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)

extern "C" __declspec(dllimport)void SetCleanRebootFlag(void);

extern "C" __declspec(dllimport) BOOL KernelIoControl(
 DWORD dwIoControlCode,
 LPVOID lpInBuf,
 DWORD nInBufSize,
 LPVOID lpOutBuf,
 DWORD nOutBufSize,
 LPDWORD lpBytesReturned);

BOOL HardResetDevice()
{
 SetCleanRebootFlag();
 return KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL);
}

出处:BIPLIP.com 作者:Daric
评论人 评论内容摘要(共 5 条,查看完整内容) 得分 44 发表时间
5 [回复]
士大夫 回复 4 楼(ulg,):的萨菲 10-08 17:53
4 [回复]
ulg, 寡凫单鹄 10-08 17:53
3 [回复]
thomas 需求手机应用软件 的合作 我们自己可以编好手机应用软件,但我们不熟悉 手机多种品牌的操作系统,我们想寻求合作人员合作:把我们的手机应用软机,能在大多流行的品牌手机上安装。 联系:.. 08-22 14:39
2 [回复]
44 5454554 08-10 15:57
1 [回复]
su 你高手帮忙,我手机是欧版多普达585,由于我刷过机,用了一一段时间,感觉很不稳定,现在开不了机了,硬启动也没有用,能告诉我怎么解决吗?帮帮忙了!!!!! 02-13 11:47
粤ICP备05082135号 | 联系我们 | 广告服务 | 互联网违法和不良信息举报中心 | 有害短信息举报 | 互联网清理整顿
版权所有 Copyright@ 2005-2007 www.51spsoft.com, All Rights Reserved.