我有一個基於C/CLI的安裝應用程序需要關閉我寫的另一個應用程序,替換應用程序的.exe和dll,然後重新運行可執行文件。我如何優雅地關閉另一個應用程序?
我需要關閉該窗口大意如下首先:
HWND hwnd = FindWindow(NULL, windowTitle);
if(hwnd != NULL)
{
::SendMessage(hwnd, (int)0x????, 0, NULL);
}
即找到一個匹配的窗口標題(哪些工作)...但是,然後我需要什麼消息發送遠程窗口要求它關閉?
......還是有更多.net-ish donig這種方式,而不訴諸於Windows API directlry?
裸記住,我僅限於.NET 2.0
已嘗試關閉應用程序的應用程序已發貨?如果沒有,您可以爲此目的建立自定義消息。 – 2010-08-23 15:42:37
爲什麼打擾時,已經有Windows消息? – 2010-08-23 15:52:15
因爲'WM_CLOSE'沒有真正告訴應用程序退出。它告訴一個窗口關閉。主窗口關閉時,許多應用程序都會退出,但有些則不會。他們可能會打開其他窗口,或者他們可能會繼續在後臺運行。通過定義自定義消息,您可以確保應用程序完全按照您需要執行的操作執行,而無需重載已定義好的消息。 – 2010-08-23 16:08:07