This event is only raised if the message pump is running. In a Windows service, unless a hidden form is used or the message pump has been started manually, this event will not be raised. For a code example that shows how to handle system events by using a hidden form in a Windows service, see the Microsoft.Win32.SystemEvents class.
Because this is a static event, you must detach your event handlers when your application is disposed, or memory leaks will result.