本文记录我远程一位老师的设备,这位老师使用的是 Win7 Sp1 系统,现象是 WPF 应用的窗口无法激活,在 user32 的 SetForegroundWindow 或 NtUserShowWindow 方法卡住
我收集到了多个进程的卡住的 dump 文件,分析到卡住有两个不同的堆栈
堆栈1:
user32.dll!_NtUserShowWindow@8() 未知
[托管到本机的转换]
> PresentationFramework.dll!System.Windows.Window.ShowHelper(object booleanBox = false) 行 3293 C#
PresentationFramework.dll!System.Windows.Window.Hide() 行 1358 C#
业务代码
堆栈2:
> user32.dll!_NtUserCallHwndLock@8() 未知
user32.dll!_SetForegroundWindow@4() 未知
[托管到本机的转换]
PresentationFramework.dll!System.Windows.Window.Activate() 行 1467 C#
业务代码
从进程模块上可以看到有微信输入法的以下模块注入:
- C:\Program Files\Tencent\WeType\WetypeCore_1.0.4.289\x86\CrashRpt1500.dll 1.05.0.0
- C:\Program Files\Tencent\WeType\WetypeCore_1.0.4.289\x86\dbghelp.dll 10.0.10150.0(debuggers(- dbg).150616-1659)
- C:\Program Files\Tencent\WeType\WetypeCore_1.0.4.289\x86\wetype_tip_core.dll 1.00.4.289
- C:\Program Files\Tencent\WeType\WetypeCore_1.0.4.289\x86\WeUIResource.dll 1.00.0.0
复现步骤:
反复进入可能会激活显示窗口和隐藏窗口的逻辑即可
解决方法:
卸载腾讯微信输入法
卸载完成之后,重启进程即可修复
相关问题: 记微信截图导致 WPF 应用卡住 窗口无法激活问题
更多技术博客,请参阅 博客导航
本文会经常更新,请阅读原文: https://blog.lindexi.com/post/%E8%AE%B0%E8%85%BE%E8%AE%AF%E5%BE%AE%E4%BF%A1%E8%BE%93%E5%85%A5%E6%B3%95%E5%AF%BC%E8%87%B4-WPF-%E5%BA%94%E7%94%A8%E5%8D%A1%E4%BD%8F-%E7%AA%97%E5%8F%A3%E6%97%A0%E6%B3%95%E6%BF%80%E6%B4%BB%E5%92%8C%E6%98%BE%E7%A4%BA.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利