<?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/1813.htm</link>
<title><![CDATA[针对 Windows 10 访问 Outlook 中 URL 的问题补充]]></title> 
<author>gOxiA &lt;sufan_cn@msn.com&gt;</author>
<category><![CDATA[Windows Client]]></category>
<pubDate>Wed, 07 Dec 2016 07:05:57 +0000</pubDate> 
<guid>https://maytide.net/read.php/1813.htm</guid> 
<description>
<![CDATA[ 
	<p><a href="http://goxia.maytide.net/ftpup/2016/HOWTO--Windows-10_12CB7/Co3p9r4XYAAb_t8.png"><img title="Co3p9r4XYAAb_t8" border="0" alt="Co3p9r4XYAAb_t8" src="http://goxia.maytide.net/ftpup/2016/HOWTO--Windows-10_12CB7/Co3p9r4XYAAb_t8_thumb.png" width="450" height="253"></a></p> <p><font color="#fd3f0d" size="4"><strong>针对 Windows 10 访问 Outlook 中 URL 的问题补充</strong></font></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 问题回顾《<a href="http://goxia.maytide.net/read.php/1806.htm" target="_blank">HOWTO: 解决 Windows 10 访问 Outlook 中的 URL 时提示"你要如何打开此文件"</a> 》，微软官方的 <a href="https://support.microsoft.com/zh-cn/kb/3094186" target="_blank">KB3094186</a> 确认Outlook 2007/2010 在 Windows 10 上设置 IE11 为默认浏览器时会导致相关注册表数据丢失而引发故障的发生。解决途径是使用微软的 easyfix 20155 进行修复，该修复工具其实是在注册表中对HTMLFILE新增了的“新开”指令。即“HKCR\htmlfile\shell”下新建名为“opennew\command”的项，其默认值为一段 CMD 指令“cmd /c start %1”，微软解释添加该指令后便可解决在 Outlook 中打开 URL 时总提示用哪个浏览器打开的问题，并且打开的 URL 会在当前 IE 的新选项卡中打开，以避免每点击一次 URL 都打开一个新的 IE 进程。当然，如果不介意的话，也可以直接指定 iexplore.exe %1 来执行。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 早先看到这个解决方案的时候就挺纳闷，为了解决是新选项卡还是新窗口打开就要通过 cmd 调用 start 来执行，有违程序设计和开发常理，实在不够严谨。果然，后续就遇到了问题！！！如果 Outlook 中邮件内容里的 URL 包含 &amp; 符号，那么最终被打开的 URL 将会被自动截断，这是因为 CMD 环境下，也就是我们常说的命令行会将 &amp; 符号识别为连续执行命令符号，也就是说会把 &amp; 符号后面的内容识别为一段命令，结果可想而知！IE 在经过 CMD 和 Start 的辗转调用后，最终得到的 URL 已经面目全非！</p> <p><a href="http://goxia.maytide.net/ftpup/2016/1777b41e3770_C638/error-demo.png"><img title="error-demo" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="error-demo" src="http://goxia.maytide.net/ftpup/2016/1777b41e3770_C638/error-demo_thumb.png" width="634" height="71"></a></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果我们试图为 %1 添加双引号，那么 Outlook 中的 URL 会完整的传递给 start ，但由于地址在双引号中，所以低级的 start 已经无法识别这个链接中的 <a href="http://L">http://</a>，也就不会自动调用 IE 去打开 http 协议类型的内容，除非双引号中只有地址，例如：http://”www.contoso.com/index.do?method=view&amp;fdid=158&amp;notifytype=2”，可是要实现这样的格式写法恐怕不现实！（开发人员不会放过你的 <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile with tongue out" src="http://goxia.maytide.net/ftpup/2016/1777b41e3770_C638/wlEmoticon-smilewithtongueout.png">）</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 折中的办法就是修改调用命令，改用 iexplore.exe %1 来执行，但引发的问题就是每次都要打开一个新 IE 进程，否则就改回 Edge 浏览器，因为使用 Edge 绝对不会遇到这个问题。鉴于 Office 2007 /2010 的主流支持生命周期因素，在 Windows 10 上还是尽量使用最新版的 Office 最为妥当！</p>
]]>
</description>
</item>
</channel>
</rss>