小弟使用了 CreateProcess,
创建cmd.exe,并执行了ipconfig/renew命令
但问题是cmd.exe程序没有关闭
在任务管理器中观察
cmd.exe始终没有关闭
跪求怎么关闭进程??试用下terminateprocess(),还是没关闭进程程序代码见下面: STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof STARTUPINFO;
PROCESS_INFORMATION pi;
BOOL res = CreateProcess(NULL,
"cmd.exe /k ipconfig/renew",
NULL,
NULL,
NULL,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW ,
NULL,
NULL,
&si,
&pi);
if (TRUE == res)
{
//等待进程执行完毕
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
有窗口的进程,可以发送WM_QUIT消息
你完全可以直接创建ipconfig这个进程吧
CreateProcess不是在这种情况下使用的
任务管理器里面依然可见cmd程序WaitForSingleObject(pi.hProcess, INFINITE);的返回值为1
这个命令是在cmd里面执行的
楼上的弄错的吧
ipconfig/renew然后
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof STARTUPINFO;
PROCESS_INFORMATION pi;
BOOL res = CreateProcess(NULL,
"renew.bat",
NULL,
NULL,
NULL,
NORMAL_PRIORITY_CLASS ¦ CREATE_NO_WINDOW ,
NULL,
NULL,
&si,
&pi);
if (TRUE == res)
{
//等待进程执行完毕
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}