通过C#打开IE -> mailto 失败

5
我发现使用Process.Start()(.Net Framework)在IE中会有奇怪的行为。 要重现此问题,请按照以下步骤操作: 必需条件: - C# IDE+编译器 - Outlook(我使用的是Outlook 2010 - 其他版本应该也有相同的问题,但未经测试) - IE9(IE8或10也可以“成功”) - IE必须是默认浏览器(您稍后可以切换回来;-)) - Outlook必须关联mailto链接 步骤(成功): - 关闭所有IE和Outlook实例 - 打开IE(32位) - 打开URL:mailto:foo@example.com 结果: Outlook启动 步骤(失败) - 关闭所有IE和Outlook实例 - 编译此代码片段:System.Diagnostics.Process.Start("http://www.example.org"); - 执行代码(IE应该开始显示示例页面) - 现在在URL栏中键入或复制mailto:foo@example.com 结果:无法启动Microsoft Outlook(或类似的东西)- WTF? 我已经检查过的内容: IE以相同的方式启动 - 参数 - 工作目录 - 用户 - 架构(32位) 我错了哪里? 如果还有更多的想法,我会很高兴进行检查、测试和查找。

有趣。我也遇到了同样版本的IE和Outlook问题(无法尝试其他版本),在Win7-64上(但使用32位IE)。出现以下消息: 另一个版本的Outlook正在运行。请关闭它并重试。 - itsme86
无论哪种方式都可以 - 如果指定程序启动而不是使用默认浏览器,会发生什么?System.Diagnostics.Process.Start("iexplore", "http://www.example.org"); 行为是否相同? - SliverNinja - MSFT
这与保护模式有关 - 如果您关闭Internet区域的保护模式(不建议这样做!),链接将起作用。 - Richard Deeming
@Richard,为什么通过开始菜单和C#启动时会有不同的受保护模式设置呢? - wischi
@SliverNinja:对我不起作用:Win7x64,IE9,Outlook 2010。使用IELaunchURL也失败了。从提升的进程启动可以工作。启动IE9x64可以工作。 - Richard Deeming
显示剩余2条评论
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

我可以重现这个问题。在我的情况下,是一个 Outlook 插件引起了这个问题。

---------------------------
MS Outlook Extension
---------------------------
The <Outlook Addin Name> MS Outlook Extension can't be loaded because Outlook is currently in use by another application. Please try again later.
---------------------------
OK   
---------------------------

我移除了这个插件之后,现在它可以正常工作了。

还有一些可能会有帮助的东西是:http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C

如果你的问题不像我的一样是插件问题,那么模拟另一个用户可能会有所帮助。


在我的情况下,消息框没有显示任何带有问题的扩展名。在你的情况下,是哪个插件引起了这个问题? - wischi
我正在使用第三方插件Autotask。我建议您尝试禁用所有插件,看看会发生什么。可能是其中任何一个插件引起的问题。 - Rusty Nail

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,