2012-10-22 52 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