我想使用ShellExecute iexplore.exe(以html文件名作为命令行arg),即使iexplore与html文件没有关联。
假设用户尚未卸载它,那么在没有提供程序路径的情况下这样做是多么安全。这适用于我的机器,即默认的Windows搜索路径包含iexplore.exe的路径。在所有最新的Windows(XP +)计算机上期望这样做是否合理?
有没有更安全的方法来执行ShellExecute iexplore.exe?
(德尔福XE2)
(尽管这个问题是单独存在的,但我会给用户一个选项,让我可以在我同时问到的这个SO问题的上下文中运行IE:Detect Chrome as browser associated with html files in Windows)
最佳答案
“ 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。
关于delphi - IExplorer.exe的ShellExecute路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11962792/