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

通过C#->;打开IE;mailto失败了,c#,internet-explorer,outlook,mailto,process.start,C#,Internet Explorer,Outlook,Mailto,Process.start,我在ie中发现了一些奇怪的行为,这些行为是由Process.Start()(.Net Framework)启动的 要重现这种情况,只需遵循以下步骤 必填项: C#IDE+编译器 outlook(在我的情况下:outlook 2010-其他版本应存在相同的问题,但未经测试) ie9(ie8或10也应该是“好的”) ie必须是默认浏览器(您可以稍后切换回;-)) outlook必须与mailto:链接相关 步骤(成功): 关闭所有IE和Outlook实例 开放式IE(32位) 打开URL:ma

我在ie中发现了一些奇怪的行为,这些行为是由
Process.Start()
(.Net Framework)启动的 要重现这种情况,只需遵循以下步骤

必填项:

  • 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应开始显示示例页面)
  • 现在键入或复制
    mailto:foo@example.com
    到您的url栏
结果:无法启动Microsoft Outlook(或类似的东西)-WTF

我已经检查的内容:

IE以相同的开头

  • 参数
  • 工作目录
  • 使用者
  • 体系结构(32位)
我做错了什么?
如果有更多的想法,我可以检查、测试、寻找,那就太好了。

我可以重现这种行为。在我的情况下,我有一个导致问题的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   
---------------------------
---------------------------
MS Outlook扩展
---------------------------
无法加载MS Outlook扩展,因为另一个应用程序当前正在使用Outlook。请稍后再试。
---------------------------
好啊
---------------------------
一旦我删除了这个插件,它现在就可以工作了

另一个可能有用的方法是:


如果您的问题不像我的那样是加载项,那么模拟其他用户可能会有所帮助。

很有趣。在Win7-64上使用相同版本的IE和Outlook(无法尝试其他版本)(但使用32位IE),我也会遇到同样的情况。获取消息:Outlook的另一个版本当前正在运行。关闭它,然后再试一次。任何一种方法对我都适用-如果指定要启动的程序而不是仅使用默认浏览器,会发生什么情况<代码>系统.Diagnostics.Process.Start(“iexplore”http://www.example.org");行为是否相同?这与保护模式有关-如果您关闭Internet区域的保护模式(不推荐!),链接会起作用。@Richard但是为什么通过Start menue和csharp启动时会有不同的保护模式设置?@SliverNinja使用您的代码片段启动显式ie的结果相同。您尝试了哪个Outlook、Windows和IE版本?在我的情况下,messagebox不会显示任何有问题的扩展名。在您的情况下,是哪个Addin导致了问题?我使用的是第三方Addin。自动任务。我会尝试禁用所有,看看你会得到什么。可能是他们中的任何一个。