【问题标题】:Open IE via C# -> mailto fails通过 C# 打开 IE -> mailto 失败
【发布时间】:2013-01-14 11:11:02
【问题描述】:

我在Process.Start()(.Net Framework)开始的ie中发现了一些奇怪的行为 要重现这一点,请按照以下步骤操作。

必填:

  • C# IDE+编译器
  • outlook(在我的情况下:outlook 2010 - 其他版本应该是同样的问题,但未经测试)
  • ie9(ie8 或 10 也应该是“好”)
  • ie 必须是默认浏览器(您可以稍后切换回来 ;-))
  • outlook 必须与 mailto: 链接相关

步骤(成功):

  • 关闭所有 IE 和 Outlook 实例
  • 打开 IE(32 位)
  • 打开网址:mailto:foo@example.com

结果: Outlook 启动

步骤(失败)

  • 关闭所有 IE 和 Outlook 实例
  • 编译此代码片段 System.Diagnostics.Process.Start("http://www.example.org");
  • 执行代码 (IE 应该开始显示示例页面)
  • 现在输入或复制mailto:foo@example.com 到您的网址栏

结果:无法启动 Microsoft Outlook(或类似的东西) - WTF?

我已经检查过的内容:

IE 以相同开头

  • 参数
  • 工作目录
  • 用户
  • 架构(32 位)

我做错了什么? 如果有更多我可以检查、测试、寻找的想法,那就太好了。

【问题讨论】:

  • 有趣。在 Win7-64(但使用 32 位 IE)上使用相同版本的 IE 和 Outlook(不能尝试其他版本)时,我也会遇到同样的事情。收到消息:当前正在运行另一个版本的 Outlook。关闭它,然后重试。
  • 任何一种方式都适合我 - 如果您指定要启动的程序而不是仅使用默认浏览器会发生什么? System.Diagnostics.Process.Start("iexplore", "http://www.example.org");行为一样吗?
  • 这与保护模式有关 - 如果您关闭 Internet 区域的保护模式(不推荐!),链接将起作用。
  • @Richard 但是为什么通过开始菜单和 csharp 启动有不同的保护模式设置?
  • @SliverNinja 相同的结果 wenn 开始显式,即使用您的代码片段。您尝试了哪个 Outlook、Windows 和 IE 版本?

标签: c# internet-explorer outlook mailto process.start


【解决方案1】:

我可以重现该行为。就我而言,我有一个导致问题的 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

如果您的问题不是像我这样的插件,那么冒充其他用户可能会有所帮助。

【讨论】:

  • 在我的情况下,消息框没有显示任何有问题的扩展名。哪个插件导致您遇到问题?
  • 我使用的是第三方插件。自动任务。我会尝试禁用所有,看看你得到什么。可以是其中任何一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
相关资源
最近更新 更多