3

我想使用 ShellExecute iexplore.exe(以 html 文件名作为命令行参数),即使 iexplore 与 html 文件没有关联。

假设用户没有卸载它,那么在不提供程序路径的情况下这样做有多安全。这适用于我的机器,即默认的 Windows 搜索路径包含 iexplore.exe 的路径。在所有最近的 Windows (XP+) 机器上期望这是否合理?

ShellExecute iexplore.exe 有更安全的方法吗?

(德尔福 XE2)

(虽然这个问题是独立的,但我会在我同时提出的这个 SO 问题的上下文中为用户提供运行 IE 的选项:Detect Chrome as browser associated with html files in Windows

4

1 回答 1

3

“iexplore.exe”不在默认搜索路径中。它的路径在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE密钥中注册。如果出于任何原因此键丢失或指向错误的位置,您的方法将不起作用。我认为这种情况发生的可能性会很低。

作为一种替代方法,您可以使用 Internet Explorer 对象。如果注册表损坏或类似情况,这也可能会失败,但对我来说这听起来像是一种更正式的方式。

ie := CreateOleObject('InternetExplorer.Application');
ie.Visible := True;
ie.Navigate('http://example.com');

IE 对象参考这里

于 2012-08-15T01:26:27.710 回答