关闭进程的方法有很多^_^,分为进程内部关闭(自杀^_^)和外部关闭。 内部关闭可以用ExitProcess();如下:

ExitProcess(0); // “0”这里代表关闭时的代码

这条语句能够比较彻底的关闭一个进程,但是要注意不能够在dll内部使用,否则将导致不可预料的程序或者系统错误。
如果是在程序外关闭此程序,该程序是用CreateProcess();语句创建并且PROCESS_INFORMATION结构中定义了线程的ID号,那么可以向该程序主线程发送WM_CLOSE消息。如下:

PostThreadMessage(piProcessInfo.dwThreadId, WM_CLOSE, 0, 0);

这种情况只适用于该主线程已经建立了消息队列,否则函数将执行失败。那么如何解决呢?(嘿嘿,放心^_^)强制性关闭它!代码如下:
        
PostThreadMessage(piProcessInfo.dwThreadId, WM_CLOSE, 0, 0);
WaitForSingleObject(piProcessInfo.hProcess, 1000);

DWORD dwExitCode = 0;
GetExitCodeProcess(piProcessInfo.hProcess, &dwExitCode);
if(dwExitCode == STILL_ACTIVE)
{
  TerminateProcess(piProcessInfo.hProcess, 0);
}

TerminateProcess()有个缺点,它只能关闭主线程,如果该程序调用了DLL,那么子线程不会被关闭。
因此TerminateProcess()只能用于特定的环境下。而将WM_CLOSE改换WM_QUIT就会在一般情况下运行了^_^。