【发布时间】: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