一例抢焦点问题追踪
现象
- 结账终端机部署X软件后不定期出现结账软件失去焦点从而无法工作
跟进
- 确认卸载X后问题不出现
- 尝试总结问题出现规律,无果
- google解决方案,工具whoareyou.exe,跑工具后发现是XU.exe作怪
- 翻代码发现XU.exe是做U盘相关的操作,只要收到WM_DEVICECHANGE消息后就启动一次,太暴力了
- 确认出问题机器并没有U盘,顶多只有扫码枪,既然是windows消息,是不是任意进程都可以发的,而未必是系统有了硬件变动后发的
- 尝试发送消息,发现可以用BroadcastSystemMessage,实际运行果然可以重现问题