我在 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 位)
我做错了什么? 如果有更多我可以检查、测试、寻找的想法,那就太好了。
最佳答案
我可以重现该行为。在我的例子中,我有一个导致问题的 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
如果您的问题不是我遇到的插件问题,模拟其他用户可能会有所帮助。
关于c# - 通过 C# 打开 IE -> mailto 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607344/