从超链接URL(Interop)中删除的查询字符串

时间:2016-10-25 06:48:21

标签: hyperlink ms-word interop ms-office vsto

我正在添加一个文档的超链接,其中包含一个查询字符串。

网址示例:https://www.website.com.au/paynow/ext?rn=555&amt=95.40

我将此添加到文档中,如此 -

Dim hyperlink As Word.Hyperlink = WordDocument.Hyperlinks.Add(Me.Range, URL, "", "", "Click me to visit the website")

这将打开网站并忽略传入的查询字符串(基本上正在运行https://www.website.com.au

如果我直接复制超链接链接(打开文档,右键单击超链接并选择“复制链接”),然后打开浏览器并粘贴它 - >使用查询字符串正确加载网址。

我已经通过fiddler检查了,似乎文档加载项正在使用返回的最终重定向URL。从阅读,似乎这也可能是Office产品的已知问题?

此外 - 如果我(以编程方式)使用相同的URL我将添加到超链接并将其添加到Process.Start(“URL”),它加载完全正常。

[我甚至尝试过编码网址 - 没有区别]。

任何想法,在这里开始发疯?

提前致谢。

1 个答案:

答案 0 :(得分:2)

原因是Word的默认行为,它首先检查URL是否为Word文档(如果是,下载并打开文档)。

adding the following Registry key可以更改此行为(相应地替换Office版本):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
    Office\15.0\Common\Internet\ForceShellExecute:DWORD=1

可在此处找到更多信息: