<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[gOxiA=苏繁=SuFan Blog]]></title> 
<link>https://maytide.net/index.php</link> 
<description><![CDATA[gOxiA,苏繁,sufan,Microsoft MVP]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[gOxiA=苏繁=SuFan Blog]]></copyright>
<item>
<link>https://maytide.net/read.php/1925.htm</link>
<title><![CDATA[排查 Windows 必须关闭所有会话框才能关闭 MMC 的故障问题]]></title> 
<author>gOxiA &lt;sufan_cn@msn.com&gt;</author>
<category><![CDATA[Windows Client]]></category>
<pubDate>Mon, 07 Jan 2019 08:29:40 +0000</pubDate> 
<guid>https://maytide.net/read.php/1925.htm</guid> 
<description>
<![CDATA[ 
	<p><img alt="troubleshooting" src="http://goxia.maytide.net/ftpup/2016/a2734efd2a17_D06F/troubleshooting_thumb.png"></p><p><font color="#fd3f0d" size="4"><strong>排查 Windows 必须关闭所有会话框才能关闭 MMC 的故障问题</strong></font></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 Windows 系统的日常操作中，我们经常会遇到这样一种故障问题，当要关闭基于 Microsoft 管理控制台（MMC）的程序时，会提示我们必须先关闭所有会话框，但实际上我们已经关闭了 MMC 下对应设置的属性对话框，当反复切换几次后，才能正常关闭 MMC。</p><p><a href="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/hyper-v_mmc_error.png"><img width="388" height="192" title="hyper-v_mmc_error" style="display: inline; background-image: none;" alt="hyper-v_mmc_error" src="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/hyper-v_mmc_error_thumb.png" border="0"></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这种问题在 Hyper-V 管理器、服务管理器中尤为突出。那么造成这种问题出现的原因是什么呢？！使用何种工具能协助我们排查这类故障？！</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们可以使用微软官方工具 Spy++ 来排查这类问题，Spy++隶属于 Visual Studio 的组件，它支持绿色方式运行，利用 Spy++ 可执行下列任务：</p><ul><li>显示系统对象之间关系的图形树，这些对象包括：进程、线程和窗口。</li><li>搜索指定窗口、线程、进程或消息的属性。</li><li>直接从视图中选择窗口、线程、进程或消息。</li><li>使用查找程序工具，通过鼠标指针定位选择窗口。</li><li>使用复杂消息日志选择参数设置消息选项。</li></ul><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于本案例要使用 Spy++ 排查原因，需要在故障重现时启动 Spy++，然后切换到线程视图，再点击工具栏上的“Find Window”图标，通过拖拽标靶图标到要监视的 Windows 对话框上来定位窗口。</p><p><a href="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/FindWindow.png"><img width="634" height="474" title="FindWindow" style="display: inline; background-image: none;" alt="FindWindow" src="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/FindWindow_thumb.png" border="0"></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之后在弹出的 Property Inspector 对话框中单击 Synchronize 按钮，即可在 Spy++ 的线程列表视图中，同步定位到这个窗口。</p><p><a href="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/PropertyInspector.png"><img width="446" height="376" title="PropertyInspector" style="display: inline; background-image: none;" alt="PropertyInspector" src="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/PropertyInspector_thumb.png" border="0"></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下来便可审查这个进程中的子线程，看看是否存在可疑项。本例中发现的可疑线程是必应输入法，当尝试切换输入法后，故障消失，可正常关闭 MMC。</p><p><a href="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/Trouble.png"><img width="634" height="440" title="Trouble" style="display: inline; background-image: none;" alt="Trouble" src="http://goxia.maytide.net/ftpup/2018/-MMC-_E072/Trouble_thumb.png" border="0"></a></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 而对于大多数安装了第三方输入法，尤其是使用搜狗输入法的朋友，相信这类问题更为常见，所以可切换关闭搜狗输入法，该问题便会消失。此外，如果你尝试使用 Spy++ 进行排错，需要注意它区分 32 和 64 位版本。有关 Spy++ 的详细信息可参考微软官方资料。</p><p><a title="https://docs.microsoft.com/en-us/visualstudio/debugger/spy-increment-help?view=vs-2017" href="https://docs.microsoft.com/en-us/visualstudio/debugger/spy-increment-help?view=vs-2017">https://docs.microsoft.com/en-us/visualstudio/debugger/spy-increment-help?view=vs-2017</a></p>
]]>
</description>
</item>
</channel>
</rss>