begin process at 2012 02 08 04:05:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > RÉCUPÉRER LE NOM DU PC CONNECTÉ À UN SERVEUR EN TERMINAL SERVER (RDP)

RÉCUPÉRER LE NOM DU PC CONNECTÉ À UN SERVEUR EN TERMINAL SERVER (RDP)


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Source .NET ( DotNet ) Classé sous :terminal, server, client, rdp, wtsquerysessioninformation Niveau :Débutant Date de création :02/08/2006 Vu :12 330

Auteur : eldim

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Lorsqu'on est connecté en Terminal Server et qu'on demande le nom du PC on obtient généralement le nom du server (ce qui est normal). Mais la plupart du temps on a besoins du nom du PC Client pour savoir qui effectue certaines opération (sachant qu'on peut avoir un user identique à partir de PC différents).
Donc avec ce code on retrouve le nom du PC Client

(Adaptation de mon source vb.net en C#)

Source

  • enum WTS_INFO_CLASS
  • {
  • WTSInitialProgram = 0,
  • WTSApplicationName = 1,
  • WTSWorkingDirectory = 2,
  • WTSOEMId = 3,
  • WTSSessionId = 4,
  • WTSUserName = 5,
  • WTSWinStationName = 6,
  • WTSDomainName = 7,
  • WTSConnectState = 8,
  • WTSClientBuildNumber = 9,
  • WTSClientName = 10,
  • WTSClientDirectory = 11,
  • WTSClientProductId = 12,
  • WTSClientHardwareId = 13,
  • WTSClientAddress = 14,
  • WTSClientDisplay = 15,
  • WTSClientProtocolType = 16,
  • WTSIdleTime = 17,
  • WTSLogonTime = 18,
  • WTSIncomingBytes = 19,
  • WTSOutgoingBytes = 20,
  • WTSIncomingFrames = 21,
  • WTSOutgoingFrames = 22,
  • };
  • [DllImport("wtsapi32")]
  • static extern void WTSFreeMemory(IntPtr memory);
  • [DllImport("wtsapi32", CharSet=CharSet.Auto)]
  • static extern Boolean WTSQuerySessionInformation(IntPtr hServer, Int32 SessionId,
  • WTS_INFO_CLASS InfoClass, ref IntPtr ppBuffer, ref Int32 pCount);
  • public String fnGetClientName()
  • {
  • String R = "";
  • IntPtr Buffer = IntPtr.Zero;
  • try
  • {
  • int bytesReturned=0;
  • Boolean sessionInfo = WTSQuerySessionInformation(IntPtr.Zero, -1,
  • WTS_INFO_CLASS.WTSClientName, ref Buffer, ref bytesReturned);
  • R = System.Runtime.InteropServices.Marshal.PtrToStringAuto(Buffer);
  • }
  • catch
  • {
  • }
  • finally
  • {
  • try
  • {
  • WTSFreeMemory(Buffer);
  • Buffer = IntPtr.Zero;
  • }
  • catch
  • {
  • }//end Try
  • }//end Try
  • return R;
  • }//End Function
        enum WTS_INFO_CLASS
        {
            WTSInitialProgram = 0,
            WTSApplicationName = 1,
            WTSWorkingDirectory = 2,
            WTSOEMId = 3,
            WTSSessionId = 4,
            WTSUserName = 5,
            WTSWinStationName = 6,
            WTSDomainName = 7,
            WTSConnectState = 8,
            WTSClientBuildNumber = 9,
            WTSClientName = 10,
            WTSClientDirectory = 11,
            WTSClientProductId = 12,
            WTSClientHardwareId = 13,
            WTSClientAddress = 14,
            WTSClientDisplay = 15,
            WTSClientProtocolType = 16,
            WTSIdleTime = 17,
            WTSLogonTime = 18,
            WTSIncomingBytes = 19,
            WTSOutgoingBytes = 20,
            WTSIncomingFrames = 21,
            WTSOutgoingFrames = 22,
        };

        [DllImport("wtsapi32")]
        static extern void WTSFreeMemory(IntPtr memory);

        [DllImport("wtsapi32", CharSet=CharSet.Auto)]
        static extern Boolean WTSQuerySessionInformation(IntPtr hServer, Int32 SessionId,
            WTS_INFO_CLASS InfoClass, ref IntPtr ppBuffer, ref Int32 pCount);

        public String fnGetClientName()
        {
            String R = "";
            IntPtr Buffer = IntPtr.Zero;
            try
            {
                int bytesReturned=0;
                Boolean sessionInfo = WTSQuerySessionInformation(IntPtr.Zero, -1,
                    WTS_INFO_CLASS.WTSClientName, ref Buffer, ref bytesReturned);
                R = System.Runtime.InteropServices.Marshal.PtrToStringAuto(Buffer);
            }
            catch 
            {
            }
            finally
            {
                try
                {
                    WTSFreeMemory(Buffer);
                    Buffer = IntPtr.Zero;
                }
                catch 
                {
                }//end Try
            }//end Try
            return R;
        }//End Function



 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CHECK IDENTICAL FILES

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) GETSYSTEMTIME ET SETSYSTEMTIME par Arnotic
Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN GÉNÉRATEUR INTERACTIF D'ARBRES DE HUFFMAN par loudadyassine
Source avec Zip Source .NET (Dotnet) [C#2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI... par PCPT
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou

 Sources en rapport avec celle ci

Source avec Zip SOCKET CONNEXION CLIENT & SERVEUR par ziedto83
Source avec Zip Source .NET (Dotnet) MONITHOR - SERVER MONITORING APPLICATION par DawnUser
Source avec Zip Source .NET (Dotnet) [.NET2] WRAPPER POUR API WINDOWS TERMINAL SERVICES. par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) DÉMO NETACCESS 2.0.1 : NETMESSENGER par wizad
Source avec Zip Source .NET (Dotnet) MODULE RÉSEAU AVANCÉ : SOCKET TCP. par djine

Commentaires et avis

Commentaire de mpe le 04/08/2009 10:40:01 9/10

Merci beaucoup pour ce code qui m'a permise d'économiser des heures de recherche. Pour info, il fonctionne aussi en mode TSE/remote app.

mpe

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Terminal Server [ par eldim ] Bonjour,Etant connecté en Terminal Server sur un Windows 2003, comment puis-je connaitre le nom de mon PC client (puisque MachineName me donne le nom Information sur les sockets [ par Dydy049 ] Bonjour ! Actuellement en BTS Informatique, je crée une PTI (Client - Server) qui consiste a faire discuté plusieurs clients entre eux. A l'heure ac Client Xp(excel)/server 2003(SQL2005) [ par snif84 ] Bonjours a tous, je suis en bts ig et je passe très bientôt mes pti. Et j'ai un Pb sur le pti base de données. Je n'arrive pas a connecté mon client x configuration client serveur [ par djbabou ] Bonjour a tous ! Une petite question : j'aimerais savoir s'il est possible de faire tourner une application développée en c# sous visual studio expre namespace [ par bidules ] Bonjour,je suis entrain de faire une appli reseauxj'ai donc un client et un server. Le client et le server sont deux projet different qui se trouve ds Application multicast Client/Server [ par charles84 ] Bonjour à tous,Je cherche une application Mulitcast tournant sous windows qui me permet d'envoyer sur des clients un fichier. Quelqu'un a deja develop probleme de connexion a sql express [ par cudenetf ] bonjour,j'ai cherché sur le forum et sur internet etr je n'ai pas trouvé de réposne (en tout cas assez simple pour moi) pour me connecter a une base s utilisation sqlserver sur un serveur avec un poste client et un razccourci vers une appli se trouvant sur le serveur [ par cudenetf ] bonjourje voudrais utiliser un raccourci a partir d'un poste client pour lancer une appli qui tourne sur un "serveur" et utilise sql expressma chaine VISUAL STUDIO 2008 ET SQL SERVER [ par papousso ] Bonjour à tous j'ai un projet a realiser sous C# avec une base SQL SERVER .J'ai installer visual studio 2008 (edition professionnelle)Mon pb c'est que Retour Server [ par zoom007 ] Bonjour à tous,Voilà, il y a quelques temps j'expliquais que j'avais un problème sur un retour non désiré sur le serveur quand je cliquais sur une ima


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales