Einzelnen Beitrag anzeigen

raiguen
(Gast)

n/a Beiträge
 
#15

Re: [IB/FB] Computername ermitteln

  Alt 26. Mär 2006, 17:27
Moin )

Wenn ich mal folgende Überlegung(en) einwerfen darf:
laut hansa geht es ja darum, welcher hochintelligente User einen Datensatz in der DB angelegt bzw verändert hat. Da nützt der Comuptername als solches wenig, weil damit ja noch nicht eindeutig klar ist, welcher User am Computer arbeitet und Modifikationen in der DB vornimmt.

Es gibt da zwei schöne Funktionen:
1. WNetGetUser --> gibt den Namen des im Netzwerk angemeldeten Users,sofern im selbigen eingeloggt; ansonsten den Benutzernamen am Computer.
2. GetUserName --> gibt den Namen des aktuell am Computer bzw im Windows angemeldeten BEnutzers.

Zur eindeutigen Identifizierung des Benutzers, welcher da was in der DB gemacht hat, müssten dann alle drei Informationen ComputerName,UserName,NetzLoginName - z.b. zusammengefasst in einem String - abgespeichert werden...

Delphi-Quellcode:
function NetzLoginName: String;
var
  size: Cardinal;
begin
  Size := 0;
  WNetGetUser(nil,nil,size);
  SetLength(RESULT,Size);
  if WNetGetUser(nil,PChar(RESULT), Size) > 0
    then Result := '';
end;

function ComputerName: PChar; //--Code vom marabu
var
  buf: array [Byte]of Char;
  size: Cardinal;
begin
  size := SizeOf(buf);
  if GetComputerName(@buf, size)
    then Result := @buf[0]
    else Result := nil;
end;

function UserName: PChar; //--o.a. Code vom marabu angepasst
var
  buf: array [Byte] of Char;
  size: Cardinal;
begin
  size := SizeOf(buf);
  if GetUserName(@buf, size)
    then Result := @buf[0]
    else Result := nil;
end;
Ich denke, dass diese Informationen wahrscheiblich nicht über einen Trigger in der DB erhältlich sind, aber mit Sicherheit im OnCreate der Hauptform...
  Mit Zitat antworten Zitat