急问:怎么强制结束掉一个弹出内存异常对话框的进程

急问:如何强制结束掉一个弹出内存错误对话框的进程
if(   CreateProcess(   NULL,   (LPSTR)(LPCSTR)csCmd,   NULL,   NULL,   FALSE,   0,   0,   NULL,   &StartupInfo,   &pi   )   )
{
//changed   by   zyg//////////////////////////////////////////
// if(pi.hProcess)
// WaitForSingleObject(pi.hProcess,   INFINITE);
// CloseHandle(pi.hProcess);
if   (pi.hProcess   &&   IfWait)   {
while   (WaitForSingleObject(pi.hProcess,   0)!=WAIT_OBJECT_0)   {
int ret;
if   (pRespondOtherMsg)   ret=(*pRespondOtherMsg)(NULL);
if   (ret==-1)   {//-1:cancel
if   (TerminateProcess(pi.hProcess,-1))
CloseHandle(pi.hProcess);

return   -1;
}
Sleep(100);
}
CloseHandle(pi.hProcess);
}
//////////////////////////////////////////////////////////
return   TRUE;
}
else
return   FALSE;

发现这里TerminateProcess不会起作用
有没有办法?

------解决方案--------------------
CreateProcess以调试模式启动,这样可以处理该进程的错误信息
------解决方案--------------------
用EnumWindows的方法找到那个对话框,给他发送WM_CLOSE消息,然后它应该会退出的。
------解决方案--------------------
非正道。弹出内存错误对话框说明程序有问题。
------解决方案--------------------
象上面说的那样,正道就是要解决你这个额外程序中的问题.

如果一定要强制结束的话,可在命令行启动程序的时候记录下这个进程的相关信息.适当的时候再结束它.但是,你怎么知道它是否弹出了内存错误信息呢?