挂机键到底干了些什么?
Windows Mobile,按下挂机键(就是挂电话的那个红色的按键),默认动作就是所有的窗口都会隐藏起来,今日主题除外。
现在我想写一个程序,按挂机键的时候,它不被隐藏,用过Spb Home的人都应该很清楚这种效果。
我经过很多尝试都没法做到Spb Home的那种效果:
1,我一开始打算响应WM_SHOWWINDOW消息,但我没捕捉到这个消息,Windows Mobile根本没有这个消息?
2,通过CE spy,我看到一个消息,其值为0xC005,但收到这个消息的时候,窗口已经被隐藏,而我再把窗口show出来的时候,就难免有点闪一下,效果不太好。
3,通过钩子改变挂机键行为,但我并不是想屏蔽挂机键,我希望按挂机键的时候别的程序都隐藏,但我的程序show出来。
上面是我的思路,谁知道挂机键确切做了些什么或者知道怎么解决我的问题的话,不妨告诉我,谢谢。
[解决办法]
WinMain()
{
AllKeys(TRUE)
....other code....
AllKeys(FALSE)
}
[解决办法]
今日桌面也是个窗体嘛,按电源键时,它被前置了
用键盘钩子不一定要屏蔽按键的
if(电源键){ SetWindowPos(xx, TopMost, xx); return CallNextHookEx(xx); //这样就不会屏蔽鸟}
[解决办法]
AllKeys 就是Windows Mobile 标准 API,你不会连帮助文件都没有吧。
如果要处理VK_TEND,只有两种方法,一个是用 AllKeys ,另一个是用SetWindowsHookExW 其他任何方法都是错的,会付出代价。
如果只是想窗口总在最前,那就设个属性行了。如果是有条件在最前,那就处理一下INACTIVE消息。
[解决办法]
你没有Windows Mobile的开发文档,所以查不到。开发文档是微软提供给授权的合作方或厂商的,网上应该也有泄漏。
[解决办法]
呵呵,这也说了~~~
AllKeys在coredll.dll中,公开函数了