使用ShellExecuteEx在已启动的实例中调用iexplore.exe

时间:2012-08-17 06:36:20

标签: c windows winapi sdk

我使用ShellExecuteEx来调用iexplore.exe,每当我启动应用程序时,都会创建一个新的Internet Explorer实例,无论是否已经打开过Internet Explorer。

我想改变这个,如果已经存在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;

} 

1 个答案:

答案 0 :(得分: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;
}