2012-10-22 89 views
0

有可能跟蹤mfc應用程序何時終止?我想跟蹤我的mfc應用程序何時終止,以便我可以在終止時顯示任務欄。如何跟蹤mfc應用程序關閉的時間?

CWnd* pWnd = CWnd::FindWindow("Shell_TrayWnd", ""); 
pWnd->ShowWindow(SW_HIDE); 

上述代碼行用於顯示和隱藏任務欄窗口。我想知道是否有任何可能跟蹤任務管理器。

回答

-1

使用NOTIFYICONDATA結構和相關API跟蹤

+0

我找到了解決方案的一半,WM_CLOSE是消息時,按windows任務管理器結束任務時,處理器的軌道。但我想知道在Windows任務管理器中單擊結束進程按鈕時的消息處理程序。 – shivcena

+0

沒有結束過程的消息。按定義結束進程是可執行文件的髒關閉。操作系統只是停止它。 – GazTheDestroyer

+0

@Gaz:是他們通知結束過程的其他方式。 – shivcena

0

如果它是一個MFC應用程序中使用CWinApp::ExitInstance覆蓋,完成應用程序終止清理。

如果您希望編寫一個應用程序來監視應用程序終止(例如正確關閉或崩潰),則可以使用Mutex。這裏介紹一個很好的例子:

Best way to detect an application crash and restart it?

0

你爲什麼要隱藏任務欄?隱藏任務欄是錯誤的和粗魯的。爲什麼?因爲你不擁有它。任務欄由系統管理並擁有用戶;如果用戶想隱藏它,他會自己隱藏它。

就像你不去'隱藏'你不擁有的汽車,你不應該隱藏你不擁有的窗戶。

如果沒有其他問題,如果您的應用程序崩潰,用戶被擰緊,很可能會被迫註銷,然後再恢復其任務欄。

如果您需要需要一個全屏應用程序,然後使用可用功能& API編寫一個全屏應用程序。如果您使用的是VS2010,稍後考慮使用記錄在http://msdn.microsoft.com/en-us/library/cc308980.aspx處的CFullScreenImpl。

或者檢查一下,在這裏StackOverflow:How to create full screen window with MFC?

快速谷歌搜索也揭示了這個CodeProject上的鏈接:http://www.codeproject.com/Articles/9632/Views-in-Full-Screen-Mode