.NET CF 下拦截系统消息的解决方案,包含 M 键,USB 状态改变事件
压缩包内包含有一个 DLL 和 C# 中引用代码。
原理很简单,用 C++ 写一个 DLL,然后在 DLL 里面监听系统消息,如果检测到消息是发给 C# 消息***,则转发该消息到 C# 消息***。
C# 中有个消息***,会把属于该窗口的消息接收过来。相应处理就好了。
已经导出
uint MzGetHomeKeyMessage();
int RegisterUsbNotifyMsg();
int GetUsbConnectType();
三个必要 API 函数,直接调用就好了。
据 mayaqcn 同学使用回报,锁屏后再解锁会触发USB状态改变事件
这可能的原因是某消息 ID 和 USB 消息冲突了。
解决方案是:收到 USB消息后,调用GetUsbConnectType(),判断 USB状态,真的改变了再提示USB状态改变。
- TestHardwareKey@200912302207.rar (69.03 KB)