vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo kommt ggf die Verb. her 
Autor: SuperEbse
Datum: 26.05.10 09:53

Hi zusammen,

also ich wollte das nun doch nicht auf mit sitzen lassen, das ich das nicht hinbekomme...

Dann kam ich drauf, da muß es doch eine API geben, und siehe da ich habe einen POST in einem Anderen Forum gefunden... ist zwar für VB6 aber, das sollte sich doch auch in .NET realisieren lassen.

Hier der VB.NET Code...

Wenn der zurückgegebene String <blank> ist dann handelt es ich um keine RDP / Terminal Session.

Private Const WTS_CURRENT_SERVER_HANDLE As Long = 0&
 
Public Enum WTSInfoClass
    WTSInitialProgram
    WTSApplicationName
    WTSWorkingDirectory
    WTSOEMID
    WTSSessionId
    WTSUserName
    WTSWinStationName
    WTSDomainName
    WTSConnectState
    WTSClientBuilderNumber
    WTSClientName
    WTSClientDirectory
    WTSClientProductId
    WTSClientHardwareId
    WTSClientAddress
    WTSClientDisplay
    WTSClientProtocolType
End Enum
 
'WTS Sitzungsanfragen-Struktur
Public Type WTS_SESSION_QUERY
    SessionID As Long
    pWinStationName As Long
    senum As WTSInfoClass
End Type
 
'Funktionsdefinition API-Aufruf für Session-Daten auslesen
Private Declare Function WTSQuerySessionInformation Lib _
    "wtsapi32.dll" Alias "WTSQuerySessionInformationA" _
    (ByVal hServer As Long, ByVal SessionID As Long, _
    ByVal WTS_INFO_CLASS As WTSInfoClass, ByRef QSbuffer As Long, _
    ByRef pCount As Long) As Long
 
'Funktionsdefinition für API-Aufruf "Speicher freigeben"
Private Declare Sub WTSFreeMemory Lib "wtsapi32.dll" (ByVal pMemory As Long)
 
'String API's
Private Declare Function StrCopyA Lib "kernel32.dll" Alias "lstrcpyA" _
    (ByVal retval As String, ByVal Ptr As Long) As Long
 
Private Declare Function StrLenA Lib "kernel32.dll" Alias "lstrlenA" _
    (ByVal Ptr As Long) As Long
 
'Funktion für Auslesen des RDP-Hostnames
Public Function GetWTSQueryHost(ByVal SessionID As Long) As String
    Dim retval As Long, lpBuffer As Long
    Dim p As Long, Count As Long
    Dim lName As Long, sName As String
 
    'Remotesitzungsinformationen holen
    retval = WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, _
        SessionID, WTSClientName, lpBuffer, Count)
 
    'Funktionsausschnitt
    ' Prozedur erfolgreich
    If retval Then
 
        'Stringlänge ermitteln
        lName = StrLenA(lpBuffer)
        If lName <> 0 Then
 
            'String initialisieren
            sName = String$(lName, 0)
 
            'String kopieren
            Call StrCopyA(sName, lpBuffer)
        End If
 
        ' Speicher wieder freigeben
        WTSFreeMemory lpBuffer
    Else
 
        'Prozedurfehler: Keine RDP, Keine DLL da oder sonstwas faul...
        MsgBox "Fehler beim Auslesen der RDP-Sitzungsdaten. Es konnten" & _
            "keine Informationen gewonnen werden. ", vbCritical, _
            "DLL-Zugriffsfehler " & Err.LastDllError
 
    End If
 
    'Returnwert
    GetWTSQueryHost = sName
End Function
Ach ja der Aufrufparameter ist dafür:

GetWTSQueryHost(-1)

Und als Ergebnis kommt dann der Hostname der Verbindung zurück, das ist mal ein Ergebnis.

Beitrag wurde zuletzt am 26.05.10 um 09:55:17 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prüfen ob logged in User per RDP verbunden ist u. von Wo kom...8.265SuperEbse26.05.10 07:29
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...7.251SuperEbse26.05.10 09:53
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.614JensWerner24.11.10 09:31
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.669ModeratorDaveS24.11.10 10:03
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.585JensWerner24.11.10 10:15
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.562ModeratorDaveS24.11.10 10:48
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.618JensWerner24.11.10 11:01
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.564ModeratorDaveS24.11.10 11:14
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.527JensWerner24.11.10 11:25
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.549ModeratorDaveS24.11.10 11:41
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.537JensWerner24.11.10 11:59
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...7.087SuperEbse26.05.10 11:52
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.860ModeratorDaveS26.05.10 11:54
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.799SuperEbse26.05.10 12:08
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.927ModeratorDaveS26.05.10 12:29
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.836SuperEbse26.05.10 15:39
Prüfen ob logged in User per RDP verbunden ist u. von Wo kom...7.038SuperEbse26.05.10 16:50
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...7.137SuperEbse28.05.10 12:08
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.949ModeratorFZelle28.05.10 13:08
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.798SuperEbse28.05.10 13:26
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...7.017SuperEbse30.05.10 20:49
Re: Prüfen ob logged in User per RDP verbunden ist u. von Wo...6.854SuperEbse31.05.10 08:19

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel