标题:排查 Windows 必须关闭所有会话框才能关闭 MMC 的故障问题 出处:gOxiA=苏繁=SuFan Blog 时间:Mon, 07 Jan 2019 16:29:40 +0000 作者:gOxiA 地址:https://sufan.maytide.net/read.php/1925.htm 内容: 排查 Windows 必须关闭所有会话框才能关闭 MMC 的故障问题 在 Windows 系统的日常操作中,我们经常会遇到这样一种故障问题,当要关闭基于 Microsoft 管理控制台(MMC)的程序时,会提示我们必须先关闭所有会话框,但实际上我们已经关闭了 MMC 下对应设置的属性对话框,当反复切换几次后,才能正常关闭 MMC。 这种问题在 Hyper-V 管理器、服务管理器中尤为突出。那么造成这种问题出现的原因是什么呢?!使用何种工具能协助我们排查这类故障?! 我们可以使用微软官方工具 Spy++ 来排查这类问题,Spy++隶属于 Visual Studio 的组件,它支持绿色方式运行,利用 Spy++ 可执行下列任务: 显示系统对象之间关系的图形树,这些对象包括:进程、线程和窗口。搜索指定窗口、线程、进程或消息的属性。直接从视图中选择窗口、线程、进程或消息。使用查找程序工具,通过鼠标指针定位选择窗口。使用复杂消息日志选择参数设置消息选项。 对于本案例要使用 Spy++ 排查原因,需要在故障重现时启动 Spy++,然后切换到线程视图,再点击工具栏上的“Find Window”图标,通过拖拽标靶图标到要监视的 Windows 对话框上来定位窗口。 之后在弹出的 Property Inspector 对话框中单击 Synchronize 按钮,即可在 Spy++ 的线程列表视图中,同步定位到这个窗口。 接下来便可审查这个进程中的子线程,看看是否存在可疑项。本例中发现的可疑线程是必应输入法,当尝试切换输入法后,故障消失,可正常关闭 MMC。 而对于大多数安装了第三方输入法,尤其是使用搜狗输入法的朋友,相信这类问题更为常见,所以可切换关闭搜狗输入法,该问题便会消失。此外,如果你尝试使用 Spy++ 进行排错,需要注意它区分 32 和 64 位版本。有关 Spy++ 的详细信息可参考微软官方资料。 https://docs.microsoft.com/en-us/visualstudio/debugger/spy-increment-help?view=vs-2017 Generated by Bo-blog 2.1.1 Release