2012-08-15 58 views
3

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

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

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

(德尔福XE2)

(虽然这个问题是独一无二的,我将让用户在这个SO问题,我问在同一时间的上下文中运行IE的选项:Detect Chrome as browser associated with html files in Windows

回答

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 Object reference here

+2

哇,我不知道ShellExecute如何搜索Sertac。以下是应用程序路径上MS文档的链接。 http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx。谢谢。 – RobertFrank 2012-08-15 01:49:13