2011-11-18 228 views
0

即使不是預定義的瀏覽器,也需要使用Internet Explorer打開網頁。強制使用Internet Explorer打開網頁

(如Chrome瀏覽器是預定義的,但我想開www.ThisRunsOnlyOnInternetExplorer.com

如何實現這一目標呢?當然有ShellExecute我知道如何打開默認的瀏覽器。

當然這必須在所有Windows工作操作系統和所有的Internet Explorer版本,所以我不能harcode的路徑iexplorer.exe

您能否提供一個解決方案

注意:?如果有T A方式Ø得到了一些API來IEXPLORER.EXE可能是招路徑gtet該路徑,然後使用的ShellExecute運行

PATH_TO_INTERNET_EXPLORER_EXE www.ThisRunsOnlyOnInternetExplorer.com 
+0

是不是iexplore.exe在每個Windows版本的路徑上?然後你可以使用ShellExecute'iexplore www.ThisRunsOnlyOnInternetExplorer.com'。 –

+0

在我的Windows 7機器上,它不在路徑 – LaBracca

+0

@Matthijs你是對的無論如何,大衛明確了我的問題 – LaBracca

回答

5

您不需要使用完全限定的路徑。安裝IE時,它將自己註冊在App Paths註冊表中。因此,您只需將iexplore.exe發送至ShellExecute()即可。

注:CreateProcess()不使用應用程序路徑機制,所以你必須使用ShellExecute()而非CreateProcess()

+0

啊......我看到'ShellExecute(Handle,'open',PChar('iexplore.exe'),PChar('ThisRunsOnlyOnInternetExplorer.com'),零,SW_SHOWNORMAL)'的作品。但是如果我不得不從命令行執行這個操作,我應該怎麼做?因爲從命令行'iexplore.exe www.ThisRunsOnlyOnInternetExplorer.com'不起作用; – LaBracca

+0

@user當您從cmd.exe執行此操作時,不會通過shell和通過應用程序路徑進行操作。它直接進入CreateProcess。如果你從Windows運行對話框中執行,那麼外殼將重新開始工作。但是您問如何在Windows程序中執行此操作,因此cmd.exe的問題是偶然的。 –

+0

好奇心:MSDN文檔說,如果應用程序可以直接打開URL,則必須定義'UseUrl' DWORD值並將其設置爲'1',否則文檔將被下載並傳遞到應用程序的本地副本的路徑。在我的機器上,'iexplore.exe'的條目沒有定義'UseUrl' !. –

1

嘗試類似的ShellExecute(手柄,「開放」,爲「%ProgramFiles%\ Internet Explorer中\ iexplore.exe「,」http://google.com「,NULL,SW_SHOWNORMAL);

我認爲程序文件是爲所有窗口設置的。

編輯:我刪除了其他的東西,因爲我沒有完全得到這個問題。

1

我用來和你有同樣的問題。我將Google Chrome作爲我的默認瀏覽器,並希望強制使用IE瀏覽器訪問某些特定的網址。我發現了一個適合我的完美解決方案。我使用ShellExecuteEx,並將文件類型指定爲IE.HTTP或IE.HTTPS。

我希望它有幫助。 FillMemory(@vShellExec,SizeOf(TShellExecuteInfo),0); FillMemory(@vShellExec,SizeOf(TShellExecuteInfo),0);
vShellExec.cbSize:= SizeOf(vShellExec);
vShellExec.fMask:= SEE_MASK_CLASSNAME或SEE_MASK_NOCLOSEPROCESS或 SEE_MASK_FLAG_NO_UI;
vShellExec.Wnd:= 0;
vShellExec.lpFile:= PChar(asURL);
vShellExec.nShow:= SW_ShowNormal;
vShellExec.lpClass:= PChar(sFileType); //使用IE.HTTP或IE.HTTPS
vShellExec.lpVerb:= PChar('Open');

ShellExecuteEx(@vShellExec);

相關問題