AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Computername des Remotedesktop-benuzter herausfiden
Thema durchsuchen
Ansicht
Themen-Optionen

Computername des Remotedesktop-benuzter herausfiden

Ein Thema von NikoMitDaMacht · begonnen am 8. Dez 2004 · letzter Beitrag vom 16. Dez 2004
Antwort Antwort
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#1

Computername des Remotedesktop-benuzter herausfiden

  Alt 8. Dez 2004, 15:11
Hi,
Ich muss mit einem programm, das auf einem remote-desktop-verbindungs-rechner lauft(termialserver), den Computernamen des pc's der die verbindung benutzt (also client) herausfinden.

Habe leider keinen plan wie das gehen soll
ich hoffe das weiss einer von euch da an den monitoren

danke!
gruss niko

Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#2

Re: Computername des Remotedesktop-benuzter herausfiden

  Alt 8. Dez 2004, 16:43
Hallo Nico,

da gibts API-Funktionen zu. Schau mal auf der Seite hier TerminalServicesAPI-Referenz nach. Da kannst du dir mit WTSEnumrateSessions (oder so ähnlich) alle sessions auflisten lassen und irgendwo darin müßte auch der Rechnername des Clients versteckt sein. Die Unit mit den Funktionsdeklarationen kannst du dir bei den Jedi's runter laden, frag mich aber bitte nicht genau wo. Ich kann sie dir aber zur Not zukommen lassen.
Gruß
UweR
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Computername des Remotedesktop-benuzter herausfiden

  Alt 10. Dez 2004, 11:17
Ich komm da nur leider nicht dran (die .pas habich) (computername)
Welche funktion soll ich nehmen?

ps:
Auf dem server laufen viele sessions!
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#4

Re: Computername des Remotedesktop-benuzter herausfiden

  Alt 10. Dez 2004, 15:43
Hallo Niko,

Zitat:
Ich komm da nur leider nicht dran (die .pas habich) (computername)
Welche funktion soll ich nehmen?

ps:
Auf dem server laufen viele sessions!

Mit GetComputername kommst du natürlich nur an deinen eigenen Computernamen dran. Du mußt dir halt die Sessions auflisten und durchlaufen. An bestimmte Infos darfst du auch nur mit ADminrechten dran.



Der folgende Code listete alle Rechenrnamen auf der Sitzungen auf die sich auf dem lokalen Server befinden.

Delphi-Quellcode:
   hServer := WTSOpenServer(NIL);
   if (hServer <> 0) then begin
      if WTSEnumerateSessions(hServer, 0, 1, SessionPtr, nCount ) then begin
         WorkPtr := SessionPtr;
         for i:=1 to nCount do begin
            if WTSQuerySessionInformation(hServer, WorkPtr^.SessionId, WTSClientName, acNameBuff, nByteCount) then begin
               sName := StrPas(PChar(acNameBuff));
                // in sName steht jetzt der Rechnername drin

               WTSFreeMemory(acNameBuff);
            end; // if WTSQuerySessionInformation
            inc(WorkPtr);
         end; // for i:=1 to nCount
      end; // if WTSEnumerateSessions(hServer ...
      WTSFreeMemory(SessionPtr);
    end;
Der Code ist aus ner bestehenden Funktion rauskopiert und geändert worden. Bitte nicht erwarten das er so funktioniert. Er soll auch mehr als Anhaltspunkt dienen wie man sowas macht.
Gruß
UweR
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Computername des Remotedesktop-benuzter herausfiden

  Alt 15. Dez 2004, 19:39
Vielen dank!

Aber ich will ja eigentlich nicht alle namen von alle sessions sondern nur den von der session auf der das prog läuft.
leider hab ich auch keine adminrechte
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#6

Re: Computername des Remotedesktop-benuzter herausfiden

  Alt 16. Dez 2004, 08:50
Hallo Niko,

an deine eigene Sessiondaten müßtest du auch ohne Adminrechte ran kommen. Die folgende Lösung sollte eigentlich so funktionieren:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jwaWTSAPI32, jwaWinBase;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   nProcessID, nSessionID, nByteCount : DWORD;
   acNameBuff : Pointer;

begin
   nProcessID := GetCurrentProcessId;

   if ProcessIdToSessionID( nProcessID, nSessionID) then begin
      if nSessionID > 0 then begin
         if WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, nSessionId, WTSClientName, acNameBuff, nByteCount) then begin
            Edit1.Text := StrPas(PChar(acNameBuff));
             // in sName steht jetzt der Rechnername drin

            WTSFreeMemory(acNameBuff);
         end;

      end;
   end;

end;

end.
und sorgt zumindest bei mir dafür das nach Knopfdruck in Edit1 der Rechnername steht.
Gruß
UweR
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz