FrEaKY - Mo 25.10.04 01:34
Titel: Windows-Benutzername ermitteln
Tag,
wie kann ich abfragen mit welchen benutzernamen man in windows eingeloggt ist? Also ein bestimmtes Prog im autostart soll nur starten wenn zB ich eingeloggt bin.
MfG Freaky
Moderiert von
Tino: Titel geändert.Moderiert von
Tino: Topic aus VCL (Visual Component Library) verschoben am Mi 27.10.2004 um 09:27
Delete - Mo 25.10.04 05:29
Delphi-Tags wären wünschenswert. ;)
Ich habe gerade nochmeine version rausgesucht, die ich immer verwende:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function GetCurrUserName: String; var Size: DWORD; begin Size := MAX_COMPUTERNAME_LENGTH + 1; SetLength(Result, Size); if GetUserName(PChar(Result), Size) then SetLength(Result, Size) else Result := ''; end; |
Du prüfst nicht, ob
GetUserName erfolgreich war, scheitert der Aufruf steht bei dir Schrott in
u. Man hat keine Möglichkeit zu überprüfen, ob deine Funktion erfolgreich war, bei mir brauucht man nur zu gucken, ob der zurückgegeben String eine Länge größer null hat. Ein weiteres Manko bei dir: Sollte der Benutzername weniger als 128 Zeichen haben hast du in den übrigen Zeichen immer noch den Speichermüll drinne der an der Stelle von
u steht. Da du vor dem Aufruf von
GetUserName das Array nicht initialisierst. Bei mir wird der String auf die tatsächlich gelesenen Zeichen gekürzt.