我有以下代码
void reportResults()
{
wstring env(_wgetenv(L"ProgramFiles"));
env += L"\Internet Explorer\iexplore.exe";
wstringstream url;
url << "\"\"" << env.c_str() << "\" http://yahoo.com\"";
wchar_t arg[BUFSIZE];
url.get(arg, BUFSIZE);
wcout << arg << endl;
_wsystem(arg);
}
其中arg是:""C:\ Program Files\Internet Explorer\iexplore.exe" http://yahoo.com "
该程序按预期运行,启动IE并导航到Yahoo,但调用函数(reportResults)永远不会退出.如何让程序退出让浏览器保持活动状态?谢谢.
您想使用_wspawn()而不是_wsystem().这将为浏览器进程生成一个新进程._wsystem()阻止您创建的命令; 这就是为什么你没有回到你的代码._wspawn()创建一个新的独立进程,该进程应立即返回到您的代码.
为什么不使用ShellExecute启动具有给定URL的默认浏览器?
概要:
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
编辑:
我想因为它必须是IE,这可能有用(注意,未经测试的代码):
LONG r = ShellExecute(NULL, NULL, "iexplore.exe", "http://www.microsoft.com", NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |