我有一个由服务启动的应用程序。该应用程序没有用户界面,它包含一个DataModule和一个TMyApplication实现,它在循环中调用Forms.Application.HandleMessage(如SvcMgr.TServiceApplication)。我挂钩了MainWindow,以记录Forms.Application隐藏窗口收到的任何消息。
$0000001A
(WM_WININICHANGE?)。所以没有WM_QUERYENDSESSION和WM_ENDSESSION消息。如何检测SYSTEM帐户上的Windows关闭并正常关闭我的应用程序?
答案 0 :(得分:4)
让您的服务通知您的子应用程序。
以下是有关服务控制管理器如何通知您服务的一些信息:
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/063cef3a-de94-44d5-8f2e-4e63c3cfdee8
自己做一个FindWindow和PostMessage(hwnd,WM_ENDSESSION)。