2012-08-17 17 views
4

我使用ShellExecuteEx調用iexplore.exe,每次啓動應用程序時,都會創建Internet Explorer的新實例,而不管Internet Explorer是否已打開。在已啓動的實例中使用ShellExecuteEx調用iexplore.exe

我想改變這個,如果已經有Internet Explorer的一個實例在那裏,我需要在那個實例中打開一個新選項卡,並將地址傳遞給ShExecInfo.lpParameters,因此不需要創建一個新窗口。有沒有辦法做到這一點?請教...

UPADATE: 在下面的答案我有一個問題,當我設置lpFile參數爲「iexplore.exe」和lpParameters爲「www.google.com」,兩個窗口打開。如果我忽略lpfile參數,那麼下面的代碼在某些機器上打開默認瀏覽器。我只想讓Internet Explorer打開。請幫助..

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { 


ShellExecute(0,L"open",L"iexplore.exe", L"http://www.google.com",0,SW_SHOWDEFAULT);  


ShellExecute(0,L"open", L"iexplore.exe", L"http://www.yahoo.com",0,SW_SHOWDEFAULT);   

return 0; 

} 
+0

是否有任何特殊原因要忽略用戶配置打開新標籤的位置? – Deanna 2012-10-12 14:20:09

+0

甚至,他們使用什麼瀏覽器? – Deanna 2012-10-12 14:21:30

+0

@Deanna我希望用戶只能使用Internet Explorer .. – 2vision2 2012-10-13 12:29:03

回答

7

它與ShellExecute一起使用。

#include <stdio.h> 
#include <tchar.h> 
#include <Windows.h> 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    ShellExecute(0,L"open",L"http://www.google.com",0,0,SW_SHOWDEFAULT); 
    ShellExecute(0,L"open",L"http://www.yahoo.com",0,0,SW_SHOWDEFAULT);  
    return 0; 
} 
+0

感謝您的答覆。我想在ShellExecuteEx中發生同樣的情況。 – 2vision2 2012-08-17 07:30:11

+0

ShellExecuteEx使用組件對象模型,你不能使用CoInitializeEx創建新的選項卡。 – perilbrain 2012-08-17 07:36:49

+0

嗨,我有一個問題在這裏,當我設置lpFile參數爲「iexplore.exe」和lpParameters參數爲「www.google.com」,兩個窗口打開。如果我忽略lpfile參數,那麼上面的代碼將在某些機器中打開默認瀏覽器。我只想要打開瀏覽器。請幫忙.. – 2vision2 2012-09-05 11:03:48

相關問題