2010-11-02 21 views
0

Selon MSDN, il n'est pas possible de déterminer si le redémarrage ou l'arrêt s'est produit à l'aide du message WM_ENDSESSION.Dites que le redémarrage est arrêté à partir de Windows Server 2008

J'ai trouvé the only way pour ce faire, mais c'est assez moche et fonctionne seulement pour Windows 2000 Server, pas pour 2008 Server.

La raison pour laquelle je demande est que je suis en train de porter le démon Linux à Windows en tant que service système. Ce démon agit différemment au redémarrage et aux événements d'arrêt du système.

J'utilise aussi python avec pywin32 dans le projet si cela aide d'une certaine façon à répondre.

+0

De quelle manière l'acte démon différemment dans ces deux scénarios? Formez la perspective de votre démon, en quoi un arrêt + démarrage est-il différent d'un redémarrage? – Cheeso

Répondre

0

Vous devez rechercher à l'aide de HookAPI (SetWindowsHookEx?) Pour capturer tous les appels ExitWindowsEx avant qu'ils ne surviennent.

Les liens qui peuvent aider: http://pastebin.com/raw.php?i=KMKiMfBD http://www.codeproject.com/KB/system/Paladin.aspx