WINCE中的钩子函数能捕捉到关机键按下的消息吗?该怎么解决
发布时间:2010-06-13 22:23:26 文章来源:www.iduyao.cn 采编人员:星星草
WINCE中的钩子函数能捕捉到关机键按下的消息吗?
写了一个钩子函数,上下左右键的截获和执行自定义程序都可成功。但是只有关机键按下的消息始终无法拦截。不知有无前辈实现了这个功能?
关键代码如下:
……
DLL中处理函数:
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PKBDLLHOOKSTRUCT kb = (PKBDLLHOOKSTRUCT)lParam;
LRESULT lResult = 0;
if ((nCode >= HC_ACTION) )
{
switch(kb->vkCode)
{
case VK_OFF:
MYPROGRAM();
lResult = 1;
break;
default:
break;
}
}
return lResult;
}
***************************************************************************************
EXE中拦截函数:
LRESULT CALLBACK LLKeyboardHookCallbackFunction(int nCode, WPARAM wParam, LPARAM lParam)
{
if((((KBDLLHOOKSTRUCT*)lParam)->vkCode) == VK_OFF)
{
keybd_event(VK_OFF, 0, 0, 0);
keybd_event(VK_OFF, 0 , KEYEVENTF_SILENT ,0);
}
return FALSE;
}
只要将VK_OFF换成VK_UP、VK_DOWN等均可实现拦截消息并执行MYPROGRAM。开发环境是VS2005+WM5.0、WM2003仿真机,WM6.0真机,均如此。真机上一按下关机键必然进入休眠状态,调试时按下则断开连接,十分之郁闷。
希望有高手解答。
------解决方案--------------------
这个和关机键设计原理有关,如果关机键发出了虚拟键值,你就可以监测到,如果没有发出键值,你就监测不到。不同设备设计原理不同,所以有的可以抓到,但是即使监测到,也来不及做什么操作,CPU直接睡了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
管道的另一端上无任何进程
我写了一个程序,运行正常。
后来,用上了sqlite数据库,然后编译部署都正常,但在WINCE 6模拟器上不能自动运...
-
Power键点亮屏幕的问题
我在程序里面成队使用了:
PowerPolicyNotify(PPN_UNATTENDEDMODE,TRUE);
PowerPolicyNotify(PPN_UNATTEND...
-
求助一个问题:windowsmobile ipl读分区的问题
ipl通过 BP_ReadData读 ramimage 分区信息 读取的时候发现必须要偏移0xc800才能读正...
-
vs2005+DevEmul_SDK.msi后仍旧没有“armv4”选项
OS:win7
IDE:先前有装vs2010做winForm,后装了vs2005(完全安装)
装完后安装了DevEmu...
-
Win7 64位操作系统如何安装arm9开发板的usb下载驱动啊
按照教程操作,超级终端打开也连上了,但是系统貌似对SECBULK.sys SECBULK.inf...
-
嵌入式开发工具
谁用过 LAZARUS 开发过嵌入式系统 ?
------解决方案--------------------
Lazarus 做 PC 上的程序,做嵌入式可能...
-
请推荐几个wince游戏软件下载的地方
最近开始玩wince,请推荐几个好的地方,可以下载游戏,软件的.多谢拉!
------解决方案--------...
-
FAT32 与单片机
根目录下文件与目录项数从那里得
还有根目录的下一簇从哪得
不是说根目录也是一个文件吗 它的目录项在哪里
---...
-
谁可以推荐一个WinCE下的视频播放器,最好可以播放AVI、RMVB、MP3等格式,谢谢。
如题,
麻烦大家推荐一个WinCE5.0下的视频播放器,
-...
-
WinCE6的BinFS问题,100分求解
1、BinFS能不能做在IDE硬盘上?
2、要支持BinFS,bootloader要做甚?
3、BinFS能不能作为一个普通文件放到...