IExplorer.exe的ShellExecute的路径

时间:2012-08-15 00:48:31

标签: delphi internet-explorer shellexecute

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

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

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

(Delphi XE2)

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

1 个答案:

答案 0 :(得分: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对象引用here