Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Angemeldeter Benutzer auslesen (https://www.delphipraxis.net/111201-angemeldeter-benutzer-auslesen.html)

cherry 31. Mär 2008 14:56


Angemeldeter Benutzer auslesen
 
hi @ all

Progge grade einen Service... möchte jetzt den aktuellen Benutzer (Der Benutzer der momentan am PC angemeldet ist und damit arbeitet) auslesen. Wenn ich das auf die herkömmliche Methode GetUser mache, erhalte ich natürlich 'SYSTEM' weil der Dienst ja als solchen gestartet wurde...

Wie kriege ich den Benutzername des angemeldeten Benutzers also?

hab schon mal was ähnliches gefragt und da hat jmd gemeint, dass es vielleicht mit "JEDI API LIB & Windows Security Code Library (JWSCL) " gehen würde...

Das ist schon mal eine Spur, aber welche Funktion welcher Unit von JWSCL muss ich Wie Benutzer um das anzustellen...
Kenn mich mit JWSCL überhaupt nicht aus, also wäre ich dankbar wenn ihr mir helfen könnt. Oder gehts noch einfacher?

Liebe Grüsse

RWarnecke 31. Mär 2008 15:00

Re: Angemeldeter Benutzer auslesen
 
Systemvariable USERNAME

wido 31. Mär 2008 15:03

Re: Angemeldeter Benutzer auslesen
 
Darf man fragen wozu Du das benötigst?

cherry 31. Mär 2008 15:04

Re: Angemeldeter Benutzer auslesen
 
LOOOOOOOOOOOOOOL! :oops:
ich sollte wohl besser nach hause gehen, ist wohl nicht mein Tag heute!

Vielen Dank

(Kann mal jmd diesen Thread wieder entfernen?! - Ist ja sinnlos)

cherry 31. Mär 2008 15:30

Re: Angemeldeter Benutzer auslesen
 
Halt mal... das mit GetEnvironmentVariable('USERNAME'); geht doch nicht, ich erhalte einen leeren String! wo ist denn da das Problem?

Zitat:

Darf man fragen wozu Du das benötigst?
Ich erstelle in eine MSSQL DB einträge für den Benutzer, also muss ich irgendwie herausfinden welcher Benutzer angemeldet ist!

Gibts da keine Möglichkeit?

Luckie 31. Mär 2008 15:33

Re: Angemeldeter Benutzer auslesen
 
Welchen Benutzer hättest du denn gerne? Der, der vor dem Bildschrim sitzt; der, der sich per Remotdeskop angemeldet hat oder den der sich gerade per FastUserSwitching angemeldet hat? Ganz abgesehen mal von den Benutzern, die sich per Terminalsession an dem Rechner angemeldet haben.

Es gibt nicht "den" angemeldeten Benutzer.

cherry 31. Mär 2008 16:34

Re: Angemeldeter Benutzer auslesen
 
hi luckie, gute Frage. Ich meinte den Benutzer der vor dem Bildschirm sitzt! ;-)
geht das?

Fussball-Robby 31. Mär 2008 16:39

Re: Angemeldeter Benutzer auslesen
 
[OT]
Zitat:

Zitat von cherry
hi luckie, gute Frage. Ich meinte den Benutzer der vor dem Bildschirm sitzt! ;-)
geht das?

Über WebCam Gesicht scannen, Fingerabdruck nehmen und DNA überprüfen :mrgreen:
[/OT]
Ich denke, Michael wollte damit sagen, dass es schwierig bzw. umständlich ist, den aktuellen Benutzer auszulesen, da es viele Wege gibt, sich anzumelden/den PC zu steuern.

Mfg

Luckie 31. Mär 2008 16:46

Re: Angemeldeter Benutzer auslesen
 
Zitat:

Zitat von Fussball-Robby
Ich denke, Michael wollte damit sagen, dass es schwierig bzw. umständlich ist, den aktuellen Benutzer auszulesen, da es viele Wege gibt, sich anzumelden/den PC zu steuern.

Nein, nicht schwierig oder umständlich, sondern unmöglich, denn wie gesagt, wer ist denn der aktuelle Benutzer, der für deine Datenbank relevant ist? Ermittelst du den Benutzer der vor dem Rechner an der Tastatur sitz, was machst du mit dem Benutzer, der per Remotedesktop oder per Terminalsession deine Anwendung benutzt?

Popov 31. Mär 2008 16:52

Re: Angemeldeter Benutzer auslesen
 
Zitat:

Zitat von cherry
hi luckie, gute Frage. Ich meinte den Benutzer der vor dem Bildschirm sitzt! ;-)
geht das?

Delphi-Quellcode:
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetCurrentUserName);
end;
Der Code ist nicht von mir, aber k.A. woher ich den habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz