我有以下代码
void reportResults()
{
wstring env(_wgetenv(L"ProgramFiles"));
env += L"\Internet Explorer\iexplore.exe";
wstringstream url;
url << "\"\"" << env.c_str() << "\" <a href="http://yahoo.com" rel="noreferrer noopener nofollow">http://yahoo.com</a>\"";
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() 创建一个新的独立进程,该进程应立即返回您的代码。
关于C++系统函数挂起应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987585/