版块
论坛
喜欢
话题
应用
搜索
登录
注册
blue123的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=39643
如何捕获键盘消息?
由于Wince系统里的程序有很多,用键盘关闭的时候有的是ESC,有的是ALT+F4,有的是ALT C,有的是ALT X等,乱七八糟,我想把他们统一一下,比如都用ALT+F4。所以我想先用程序捕获到键盘的消息,如果是ALT+F4的话,就找到系统当前最上面的程序,然后强制关闭他。现在...
全文
回复
(
7
)
2004-12-14 19:26
来自版块 -
Wince 程序开发
◆
◆
表情
告诉我的粉丝
提 交
wwei_wang
:
兄弟你可以试试下面的函数: HWND GetParent( HWND hWnd ); 当你得到一个窗口的句柄之后,你可以递归调用它,直到找到对应的应用程序的主窗口,然后关闭它;如果当前窗口即为主窗口,直接关闭它就可以了。 [编辑 - 12/17/04 by ...
(2004-12-17 08:31)
回复
blue123
:
键盘捕获的问题我已经解决了,谢谢大家,我注册了一个系统热键,就可以得到了。 第二个问题就比较麻烦了,我得到窗口的句柄,那个句柄虽然不是我程序的,但可能是另外一个程序的一个自窗口的句柄,这样的话,我给那个句柄发关闭消息,结果是那个句柄的窗口(也就是子窗口)被关闭了,而不是应用...
(2004-12-16 16:06)
回复
wwei_wang
:
joyfly说得没错。但是DLL也是一种应用,到底在哪里实现完全是个人所好,而且与实际情况有关。如果把这个功能放到其他的动态链接库里面,那么就可以减少一个进程的运行,这对物理内存相对比较紧缺的系统来说肯定是有益的。当然,具体的实现还是与实际的情况有关的。:))))
(2004-12-16 08:35)
回复
joyfly
:
如果可以修改KEYBOARD DRIVER,就可以在DRIVER里得到你要的KEY的时候,SetEvent()通知你的APPLICATION就可以了,用不着写DLL那么麻烦了; 同时还能在DRIVER里把你不想交给系统处理的KEY直接丢掉,不给GWES,也就起到了屏蔽一些KEY...
(2004-12-15 15:47)
回复
wwei_wang
:
对于“如何捕获到键盘的消息?”,我觉得也可以在键盘驱动程序里实现,先捕获Alt+F4,然后通知上层的应用(也可以是一个动态链接库,当然这个需要自己开发,应该很简单的),由这个应用(或动态链接库)负责关闭处于顶层的应用程序。 如果我说的不对,还请各位大侠批评指正,谢谢:)))
(2004-12-15 14:15)
回复
joyfly
:
关于WINCE下的HOOK的有限支持, http://www.cnemb.com/index.php?name=PNphpBB2&file=viewtopic&t=10333 关于"如何找到当前系统中正在运行的最上面的那个程序,然后关闭他?&...
(2004-12-15 12:55)
回复
wwei_wang
:
(2)通过调用GetForegroundWindow()函数可以获得当前的前台窗口。调用DestroyWindow函数可以销毁指定的窗口。 [编辑 - 12/15/04 by wwei_wang]
(2004-12-15 08:58)
回复
blue123
加关注
写私信
0
关注
0
粉丝
371
帖子
返回顶部