在按键驱动中启动一个窗体程序A
然后使用FindWindow 去查找该窗体,但是总找不到返回NULL
同样,启动A,在另一个应用程序里FindWindow 查找A的窗体却成功,发送消息一切正常
各位,是什么原因呢
思路有问题。驱动发消息给应用程序,也应该是广播,为什么要指定窗口?
简单的说!为什么驱动里使用FindWindow查找一个已存在的窗体会失败
而在应用程序中的相同操作却能成功
这个没有环境测试。
不过用广播形式发送倒是一个普遍的做法。
别的方法能搞定,我只是不清楚为什么会这样 我另一个MFC的程序可以找到
这主要有几种情况
1.驱动中FindWindow的代码和MFC中的不同(可能性1%)
2.驱动加载过早,比如按键驱动一般由device.exe加载,而Window创建一般由gwes.exe加载之后才进行,
所以,当你驱动执行该代码时,窗口根本还没创建,所以找不到。(可能性98%)
3.未知原因及不可抗力造成。(1%)