2012-08-15 39 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