我正在使用带有CREATE_NEW_CONSOLE选项的CreateProcess API ,因为我希望在新窗口中打开应用程序。当我调用TerminateProcess时,它不会立即关闭窗口,而是延迟关闭。是否有可能以某种方式强制它立即关闭窗口?
我目前在 Windows7 64bit 上运行,但我正在处理的程序不应该依赖于 WIN 版本。
我想使用CREATE_NEW_CONSOLE以便主窗口不会被新应用程序劫持。
我正在使用带有CREATE_NEW_CONSOLE选项的CreateProcess API ,因为我希望在新窗口中打开应用程序。当我调用TerminateProcess时,它不会立即关闭窗口,而是延迟关闭。是否有可能以某种方式强制它立即关闭窗口?
我目前在 Windows7 64bit 上运行,但我正在处理的程序不应该依赖于 WIN 版本。
我想使用CREATE_NEW_CONSOLE以便主窗口不会被新应用程序劫持。
我试图用CREATE_NEW_CONSOLE
标志重现这个问题。
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
TCHAR szCommand[MAX_PATH];
_sntprintf_s(szCommand, MAX_PATH, _T("%s"), _T("c:\\windows\\system32\\cmd.exe"));
DWORD res = CreateProcess(NULL, szCommand, NULL, NULL, FALSE,
CREATE_NEW_CONSOLE,
NULL, NULL, &si, &pi);
TerminateProcess(pi.hProcess, NULL);
终止过程没有延迟。
尝试使用procmon找出您的案例中发生延迟的位置。