Meh*_*dad 5 windows winapi window-messages
这有点是关于Windows编程的一般问题:
Window消息"可靠"吗?
为例如(这些只是例子):
你能一定是一个WM_MOUSEMOVE光标进入你的屏幕前,会怎样呢?
如果插入设备,您能确定会收到WM_DEVICECHANGE消息吗?
如果你的窗户失去焦点,你能确定你会收到一条WM_KILLFOCUS消息吗?
或者,换句话说:你能否确定你会在适当的时候得到适当的信息,或者你是否总是必须采取防御性的方式进行编码,以防某些情况下你可能因为没有明显记录的原因而错过了一条信息?
这是保证(据我所知)一个文件系统过滤驱动程序不会"小姐"文件操作或更改通知.
相比之下,无法保证ReadDirectoryChangesW不会错过通知.事实上,如果缓冲区溢出,它可能会错过很多.
我不是在谈论针对对手的情况(例如有人劫持你的窗口程序或安装钩子/过滤器); 这几乎会使任何保证无效.我只是询问可能真正发生的模糊情况,即使没有人意味着任何有意义的错误,例如一些随机缓冲区溢出,如果有人使用SendInput等等,假设您已经控制了自己的代码.
不,您无法确定给定的消息是否会按特定的顺序传递。以下是不这样做的几个原因
WM_KEYUP后面跟着WM_KEYDOWN. WNDPROC最好围绕顺序很重要的任何场景进行防御性编码