问个方案

jason176374 2010-07-27 06:33:18
一个驱动程序,一个对话框程序。
有些时候驱动程序需要通知对话框程序做某些操作。

为了简化操作,我们就定义了一些按键消息,驱动程序使用keybd_event来触发这些按键事件,
然后对话框程序就接收WM_KEYDOWN消息并根据键码做响应的操作。

但是这样有一个问题,就是如果焦点不在对话框上的话,就接收不到消息。

为了解决这个问题,我把WM_KEYDOWN改成了热键WM_HOTKEY,并注册了系统热键。
但是现在的结果是,程序接收不到keybd_event发出来的消息。

模拟器上测试OK。在模拟器上使用另外一个对话框程序触发keybd_event消息也可以收到。
由于实际硬件没有键盘,所以也没有办法做确认。

我想问的是:
1 是否有人有这个经验,是不是这个方法不行?
2 有没有其他的(消息以外)方法。驱动主动通知应用程序做某些事情。

谢谢大家

...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason176374 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 reallyu 的回复:]

SendMessage 不需要用FindWindow啊
App 调用 DeviceIoControl 把 hWnd 传给驱动记下来
[/Quote]

这个方法好。呵呵。
Reallyu 2010-07-28
  • 打赏
  • 举报
回复
SendMessage 不需要用FindWindow啊
App 调用 DeviceIoControl 把 hWnd 传给驱动记下来
jason176374 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 reallyu 的回复:]

这个方法可以啊
还可以发送自定义广播消息,或者app向驱动注册自己的hwnd
驱动向注册的hwnd发送自定义消息,这样不会影响到别的应用软件,而且在app后台,隐藏的情况都可以收到
[/Quote]
这样的话驱动用什么函数?
驱动也可以FindWindow这样吗?
jason176374 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wohuazhen 的回复:]

就不能主动问啊?
串口是通过事件告诉应用程序,有数据的啊?
[/Quote]
轮询在实时性上稍微差点。。就不考虑了
Reallyu 2010-07-27
  • 打赏
  • 举报
回复
这个方法可以啊
还可以发送自定义广播消息,或者app向驱动注册自己的hwnd
驱动向注册的hwnd发送自定义消息,这样不会影响到别的应用软件,而且在app后台,隐藏的情况都可以收到
wohuazhen 2010-07-27
  • 打赏
  • 举报
回复
就不能主动问啊?
串口是通过事件告诉应用程序,有数据的啊?

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧