对WM_QUIT是一个特例。为什么呢?参看GetMessage的说明:<br>.....<br>If the function retrieves the WM_QUIT message, the return value is zero. <br>.....<br>这就意味着将不再进入消息循环进行DispatchMessage(),而直接从while中退出,<br>很自然,WndProc就不会被调用,而SendMessage()却等着,但永远不会得到结果。<br>这正是你看到的现象。<br><br>通常要关闭外部程序,一般用:<br>PostMessage(hwnd,WM_SYSCOMMAND,SC_CLOSE,0)<br>如果你想“强硬”一点的话,那就<br>GetWindowThreadProcessId() 再 TerminateProcess()吧。<br><br>下面的文档,也许会给你一些帮助:<br>Q178893 - HOWTO: Terminate an Application "Cleanly" in Win32 <br>http://support.microsoft.com/support/kb/articles/q178/8/93.asp<br><br>