Entwickler-Ecke
Windows API - GetCurrUsername unterschlägt alles folgende
Nano-Ware - Mo 10.10.11 20:31
Titel: GetCurrUsername unterschlägt alles folgende
Hey,
ich nutze diese Funktion, die ich im Internet gefunden habe, um den Benutzernamen auszulesen :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| 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; |
Wenn ich jetzt diesen String ausgebe und mit "+" etwas hintendranhänge wird das unterschlagen:
Delphi-Quelltext
1:
| Codex.GetCurrUserName + ' ist cool!' |
Ergibt "Benutzername"
Sollte ergeben "Benutzername ist cool!"
Warum?
Moderiert von
Narses: Topic aus Internet / Netzwerk verschoben am Di 11.10.2011 um 09:33
Gausi - Mo 10.10.11 21:31
Ich würde vermuten, dass da noch ein #0 hinten dranhängt. Funktioniert das?
Delphi-Quelltext
1:
| trim(Codex.GetCurrUserName) + ' ist cool!' |
Nano-Ware - Mo 10.10.11 21:45
Danke das hat das Problem gelöst (;
jaenicke - Mo 10.10.11 21:45
Die Funktion ist auch falsch programmiert, siehe Doku:
Korrekt wäre:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function GetCurrUserName: string; var Size: DWORD; begin Size := MAX_COMPUTERNAME_LENGTH + 1; SetLength(Result, Size); if GetUserName(PChar(Result), Size) then SetLength(Result, Size - 1) else Result := ''; end; |
Nano-Ware - Di 11.10.11 00:36
Dann auch nocheinmal ein Danke an Sie Herr Jaenicke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!