AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Username in Anmeldeskript ermitteln ->
Thema durchsuchen
Ansicht
Themen-Optionen

Username in Anmeldeskript ermitteln ->

Ein Thema von Steran · begonnen am 24. Apr 2003 · letzter Beitrag vom 5. Mai 2003
Antwort Antwort
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#1

Username in Anmeldeskript ermitteln ->

  Alt 24. Apr 2003, 10:10
Hallo,

ich hab irgendwie ein komisches Problem:

Habe ein Programm geschrieben, welches im Anmeldeskript (NT4 Domäne; 9x/2K/XP Clients) läuft!

Dieses Programm ermittelt Usernamen und PC-Namen..es funktioniert auch eigentlich einwandfrei, nur bei manchen Usern wird anstelle des User-Names der Hexwert 18 (Quadrad) in die Log-Datei geschrieben!
Führe ich das Programm nach der Anmeldung manuelle aus, wird der Username richtig ermittelt! => Log-Datei wird richtig geschrieben!

Das Problem tritt aber immer bei den gleichen usern auf!

Der Code für die GetUserName funktion:

Delphi-Quellcode:
function GetUserName(): String;
var
    Buffer: Array[0..MAX_COMPUTERNAME_LENGTH+1] of Char;
    Size: DWORD;
begin
    size:=1024;
    Windows.GetUserName(Buffer, Size);
    Result:=StrPas(Buffer);
end;
Habt ihr eine Erklärung für diese Phänomen?

danke

Steran
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 25. Apr 2003, 17:53
Moin Steran,

kann es sein, dass der Fehler nur bei 9x Clients auftritt?
Ich hab' da nämlich etwas Ähnliches, das nur bei 9x Clients auftritt (geht ebenfalls um den Usernamen).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 25. Apr 2003, 18:43
Versuch mal die version, diich hier gepostet habe
http://www.delphipraxis.net/viewtopic.php?t=4800 (Die aus dem letzten Posting natürlich).
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#4
  Alt 28. Apr 2003, 13:17
Hi!!

Ja, der Fehler tritt eigentlich nur bei 9x Clients auf...aber nicht bei allen!

...werd das von luckie mal probieren..und poste dann wieder!

danke!

Steran


Nachtrag:

..habs jetzt getestet...Luckie's Version funzt leider auch nicht *heul*
..bei UserName in meiner Log-Datei steht jetzt gar nichts...wird aber richtig geschrieben, wenn ich das Programm nach der Anmeldung manuell starte...

..komisch ist allerdings, dass meine Funktion GetComputerName:

Delphi-Quellcode:
function GetComputerName(): String;
var
    Buffer: Array[0..MAX_COMPUTERNAME_LENGTH+1] of Char;
    Size: DWORD;
begin
    size:=1024;
    Windows.GetComputerName(Buffer, Size);
    Result:=StrPas(Buffer);
end;
einwandfrei funktioniert...wobei sie doch ziemlich ähnlich mit der GetUserName Funktion ist...irgendwie hab ich keinen Durchblick mehr

Hat sonst noch jmd. einen Vorschlag???

Danke
  Mit Zitat antworten Zitat
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#5
  Alt 29. Apr 2003, 07:50
so...jetzt hab ich's doch geschafft, den UserName richtig in eine log-datei zu schreiben...ich fand leider keine andere Lösung, als mein Programm eine 5 sekündige Pause machen zu lassen, und dann erst den UserName abzufragen:

Delphi-Quellcode:
procedure Pause (Zeit: LongInt);
var
  ZeitVar: LongInt;
begin
  ZeitVar := GetTickCount;
  repeat
    Application.ProcessMessages
  until (GetTickCount - ZeitVar > Zeit)
end;
ist zwar irgendwie "unschön" gelöst, aber es funktioniert zumindest!

Danke nochmal an alle helfenden!!

MfG

Steran
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 30. Apr 2003, 17:24
Moin Steran,

danke für den Tip, das werd' ich dann auch mal ausprobieren, allerdings Betriebssystemspezifisch eingebaut.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#7

GetUserName

  Alt 30. Apr 2003, 17:56
Ich benutze auch Die Funktion GetUserName für derartiges. Mir ist jedoch aufgefallen dass wenn die Userkennung geändert wird, die Funktion immer noch den alten Wert liefert.

Als z.B Fräulein "müller" hat die Kennung 'müller' jetzt heiratet sie und der account wird geändert in "maier". GetUserName liefert dann immer noch "müller".
Da muß es doch noch andere api-Funktionen geben um auch an die neue Kennung heranzukommen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 30. Apr 2003, 18:40
Moin DelphiDeveloper,

also dass sich der Profilpfad nach einer Umbenennung des Accounts nicht ändert weiss ich aus eigener Erfahrung, aber das GetUserName den alten Account zurückliefert ist mir neu.
Unter welchen Betriebbsystemen ist Dir das aufgefallen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#9

GetUserName

  Alt 5. Mai 2003, 11:41
Zitat:
Unter welchen Betriebbsystemen ist Dir das aufgefallen?
XP Home
  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 19:41 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