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
Source / Exemple :
Enum WTS_INFO_CLASS
WTSInitialProgram = 0
WTSApplicationName = 1
WTSWorkingDirectory = 2
WTSOEMIdWTSOEMIdNot = 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
End Enum
Private Const WTS_CURRENT_SERVER_HANDLE As Integer = -1
Private Declare Sub WTSFreeMemory Lib "wtsapi.dll" (ByVal memory As IntPtr)
Private Declare Auto Function WTSGetActiveConsoleSessionId Lib "Kernek32.dll" () As Integer
Private Declare Auto Function WTSQuerySessionInformation Lib "wtsapi32.dll" ( _
ByVal hServer As Int32, _
ByVal SessionId As Int32, _
ByVal InfoClass As WTS_INFO_CLASS, _
ByRef ppBuffer As IntPtr, _
ByRef pCount As Int32) As Int32
Private Function fnGetClientName() As String
Dim R As String = ""
Dim Buffer As IntPtr = IntPtr.Zero
Try
Dim bytesReturned As Integer
Dim sessionInfo As Boolean = WTSQuerySessionInformation(IntPtr.Zero.ToInt32, -1, _
WTS_INFO_CLASS.WTSClientName, Buffer, bytesReturned)
R = System.Runtime.InteropServices.Marshal.PtrToStringAuto(Buffer)
Catch ex As Exception
Finally
Try
WTSFreeMemory(Buffer)
Buffer = IntPtr.Zero
Catch ex As Exception
End Try
End Try
Return R
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.