2010-12-20 3 views
0

Je veux capturer tous les écrans d'utilisateurs qui sont connectés à ma machine. Alors, comment puis-je faire ça?Comment prendre la capture d'écran de session d'utilisateur en utilisant C#

Je veux créer un service Windows qui capture l'écran des utilisateurs.

Merci Laxmilal

+0

Comment ces écrans sont-ils connectés à votre machine? Bureau à distance? VNC? Ou voulez-vous dire plusieurs moniteurs physiques attachés à un ordinateur? Dans quelle langue écrivez-vous ce service? –

+0

Ces utilisateurs se connecteront à l'aide de Remote Desktop. J'utilise C#. – LLM

Répondre

0

Vous pouvez le faire en utilisant l'API Windows Terminal Service (WTS). Voici ce que vous devez faire:
1. Utilisez Système local comme compte de service système. Les autres comptes ne fonctionneront pas.
2. Appelez WTSOpenServer, puis utilisez WTSEnumerateSessions pour récupérer la liste des sessions
3. Vous obtiendrez la liste des structures WTS_SESSION_INFO. Chaque élément représente des sessions. Vous êtes uniquement intéressé par les sessions où l'état est WTSActive.
4. Dans une boucle, appelez CreateProcessAsUser pour chaque session identifiée à l'étape précédente. Spécifiez sessionId à partir de la structure WTS_SESSION_INFO que vous avez pour la session. Le nom du processus à exécuter serait votre utilitaire de capture d'écran préféré. Je n'ai utilisé aucun de ceux-ci, mais la recherche rapide sur internet ne propose que peu d'options.

Questions connexes