2010-07-04 5 views
3

J'ai un Windows Service toujours en cours d'exécution une fois PC démarré, comment je détecterais en utilisant .NET 3.5 ou WMI, lorsque l'utilisateur ou une autre application/processus a demandé un arrêt ou redémarrage dans Windows.Détecter l'événement d'arrêt de Windows

Je ne veux pas arrêter, connectez-vous le temps et qui a initié l'arrêt (utilisateur ou le processus est très bien, ne pas vraiment besoin de savoir quel processus)

Merci

Répondre

0

Win32. L'événement SessionEnded est renvoyé lorsque le système est arrêté. Vous devriez attacher à cela dans votre programme.

3

Utilisez l'événement Microsoft.Win32.SystemEvents.SessionEnding. Toutefois, notez que vous êtes dans un service Windows et que cet événement ne se déclenchera pas à moins que vous ne créiez un formulaire masqué dans votre service. Vous pouvez en obtenir un gratuitement en activant l'option "Interagir avec le bureau" sur le service.

1

Vous recherchez l'événement SystemEvents.SessionEnding.

Se produit lorsque l'utilisateur tente de se connecter à ou d'éteindre le système.

Questions connexes