我想使用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)
答案 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。