2009-11-02 1 views
1

Lorsque les mises à jour sont disponibles et l'utilisateur sélectionne Arrêter dans le menu Démarrer de Windows, une boîte de dialogue apparaît avec un menu de mise hors service, déconnectez-vous, etc.Que se passe-t-il exactement lors de la sélection de l'option de fermeture de session Windows "Installer les mises à jour et arrêter"?

Une option qui apparaît est

« Installer les mises à jour et Arrêter "

La question est, que se passe-t-il exactement lorsque l'utilisateur appuie sur OK?

La tâche affiche-t-elle l'explorateur de dialogue? (Il semble impossible de dire d'espionnage au profit du moniteur de processus, car le bureau est gelé)

Je suppose (mais ne suis pas sûr) c'est Explorer et lorsque l'utilisateur appuie sur OK appelle ExitWindowsEx

Si La question est ce qui est différent lorsque l'utilisateur sélectionne "Install Updates And Shut Down" enverrait-il des drapeaux spéciaux à ExitWindowsEx ou peut-être appelait-il une autre API et serait-il possible d'espionner cette fonctionnalité? Lorsque l'utilisateur clique sur "OK", il déconnecte tous les utilisateurs connectés puis il installe toutes les mises à jour en attente.

+0

Pourquoi? C'est une question de programmation sur les processus de gain et l'API –

+0

Le * but * de votre question n'est pas très clair. Voulez-vous mettre en œuvre quelque chose de similaire? Comprendre mieux comment fonctionne Windows? Tweak le mécanisme pour faire quelque chose de différent? Ajouter votre propre action à la boîte de dialogue d'arrêt? – peterchen

Répondre

0

le processus d'installation de mise à jour ne s'exécute pas dans l'explorateur. Je pense qu'il s'exécute sous WinLogon, peut-être à travers un Winlogon notification package. Je ne sais pas quel appel système déclencherait automatiquement ce comportement ...

Toutefois, vous pouvez jeter un oeil au Windows Update Agent API qui devrait vous permettre de contrôler les mises à jour automatiques par programmation.

+1

J'ai attaché WinDbg à Explorer.exe avec bp user32! ExitWindowsEx et peux voir les arguments passés dans les registres cx et dx. J'ai testé depuis le menu démarrer avec un arrêt standard et aussi avec un 'Install Updates And Shutdown' et dans chaque cas les arguments passés sont de 9 pour les flags (Shutdown + Poweroff) il ne semble y avoir aucune différence dans l'appel ExitWindowsEx. Désassembler Explorer.exe (avec IDA PRO) montre qu'il a une importation de ExitWindowsEx mais pas de références croisées. Je voudrais découvrir où l'appel est et quel code l'entoure (dans une DLL peut-être?) –

0

Im juste jeter quelques réflexions ..

Peut-être qu'il met une entrée dans cette clé de Registre avant de redémarrer: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce

Vérifiez également la valeur ShutdownFlags dans la clé de Registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

Questions connexes