1

我正在尝试使用自定义 MFC 应用程序构建安装 CD,该应用程序设置为在插入 CD 时自动运行。

这些说明包含在一个简单的 html 页面中,其中包含图像和 PDF 文档的链接,所有这些都位于 CD 上。

过去,我使用以下内容使用默认浏览器打开 html 页面:

ShellExecute(NULL, "open", <full path to .htm file including CD drive letter>, NULL, NULL, SHOWNORMAL);

但是在 vista 下使用 IE8 进行测试时,我遇到了以下问题:

  1. 资源管理器启动
  2. 标签显示“正在连接”
  3. 探险者消失

这与保护模式有关,因为如果您关闭 Internet 区域的保护模式,问题就会消失。

奇怪的是,只有在将所有内容刻录到 CD 后才会出现问题。如果我只是从我的硬盘驱动器手动运行自动运行可执行文件,那么 html 页面就会正常显示。

所以我问是否有什么具体的办法可以解决这个问题?或者,如果有另一种使用用户默认浏览器打开 URL 的机制可能不会出现此问题?

4

2 回答 2

0

由于您可以合理地确定 IE 已安装,您可能需要执行

iexplore.exe [URL] 

在你的 shellex 电话中。

如果未安装 IE,请检查返回值是否未找到。如果是这样,您的原始 shellex 直接在 .htm 文件上调用。

或者,您可以将 .htm 复制到 %TEMP%,然后从那里运行 shellex 调用。这样它就可以从“危险”位置绕过受保护的接入点。

于 2009-07-28T19:20:01.660 回答
0

你能捕获并显示 ShellExecute 的返回码吗?这可能会给我们一个关于正在发生的事情的线索。

result = ShellExecute(...

此处列出了可能的返回码:

http://support.microsoft.com/kb/238245

它在您的问题中说您正在对 CD-ROM 驱动器号进行硬编码。您正在测试的机器的驱动器号是否与您创建 CD 的机器不同?

于 2009-07-28T19:21:55.103 回答