2010-05-25 3 views
0

Y at-il un moyen de savoir si l'utilisateur est complètement connecté ou pas dans le système? Je veux dire, je voulais savoir si le processus de connexion initial, d'autres processus d'initialisation sont effectués ou non. Une fois que cela est fait, je veux lancer ma demande. Donc, dans mon service (installé avant l'arrêt de sys) je veux continuer à vérifier si tout est fait ou non, basé sur le résultat que je veux lancer mon application.comment savoir si l'utilisateur est complètement connecté ou pas?

+0

Je suis capable de résoudre ce problème en utilisant si LogonUI.exe est en cours d'exécution ou non. ce processus s'arrête lorsque les informations d'identification sont correctes et que l'utilisateur se connecte. Mais pendant shutdown \ logoff, s'il y a un appel shutdown \ logoff blocker (comme worddoc non sauvegardé), il y aura deux options 1) forcer shutdown \ logoff, 2) annuler, si vous appuyez sur cancel, winlogon lance LogonUI.exe et le fait courir pour toujours. Donc, ma logique de prise de décision échoue dans ce cas de coin. Je ne comprends pas pourquoi LogonUI.exe fonctionne pour toujours comme ça. :( – rplusg

+0

ou, est-il un moyen de capturer le message d'annulation? – rplusg

Répondre

1

Je ne suis pas sûr de savoir ce que vous entendez par "complètement connecté au système". L'utilisateur peut être connecté ou non; Je ne comprends pas comment il pourrait être incomplètement enregistré.

Si vous souhaitez lancer une application lors de la session est ouverte, il y a plusieurs façons de le faire:

  • Ajout d'un raccourci dans le dossier « Démarrage », dans le menu « Démarrer »
  • Ajout d'une touche « Exécuter » dans le registre (dans HKLM ou HKCU en fonction de ce que votre application ne)

votre application peut alors détecter si la session est sur le point de fermer, en écoutant certains événements spécifiques de Windows, si elle avoir besoin s à.

Si votre application est un service, elle peut dépendre d'autres services et attend qu'ils soient démarrés avant de démarrer.

Si vous voulez juste détecter quand la session ouverte est "prêt à l'emploi", j'ai peur qu'il n'y ait aucun bon moyen de faire ceci. L'utilisateur pourrait avoir des logiciels personnalisés lancés au démarrage et il n'y a aucun moyen générique de détecter quand ces logiciels ont été démarrés.

+0

Je suis capable de résoudre ce problème en utilisant si LogonUI.exe est en cours d'exécution ou pas.Ce processus s'arrête lorsque les informations d'identification sont correctes et la connexion de l'utilisateur. s'il y a un appel shutdown \ logoff blocker (comme worddoc non sauvegardé), il y aura deux options: 1) shutdown \ logoff, 2) cancel, si vous appuyez sur cancel, winlogon lance LogonUI.exe et le fait tourner indéfiniment. Donc, ma logique de prise de décision échoue dans ce cas de coin. Je ne comprends pas pourquoi LogonUI.exe fonctionne pour toujours comme ça. : " – rplusg

+0

" en écoutant certains événements Windows spécifiques "-> pourriez-vous s'il vous plaît eloborate? – rplusg

+0

@calvin: Je n'ai pas la possibilité de le vérifier maintenant, mais jetez un oeil aux messages' WM_ENDSESSION' (Peut-être en utilisant un * crochet *?) – ereOn

Questions connexes