GetCurrUsername unterschlägt alles folgende
spacer
Autor Nachricht
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 356
Erhaltene Danke: 7



BeitragVerfasst: Mo 10.10.11 20:31 
Hey,

ich nutze diese Funktion, die ich im Internet gefunden habe, um den Benutzernamen auszulesen :

ausblenden Delphi-Quelltext markieren
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:

ausblenden Delphi-Quelltext markieren
1:
Codex.GetCurrUserName + ' ist cool!'


Ergibt "Benutzername"
Sollte ergeben "Benutzername ist cool!"

Warum?


Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Di 11.10.2011 um 09:33
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 8118
Erhaltene Danke: 251

Win XP, Win 7
D7 PE, RAD Studio 2009 Professional
BeitragVerfasst: Mo 10.10.11 21:31 
Ich würde vermuten, dass da noch ein #0 hinten dranhängt. Funktioniert das?
ausblenden Delphi-Quelltext markieren
1:
trim(Codex.GetCurrUserName) + ' ist cool!'

_________________
Oel ngati kameie.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 356
Erhaltene Danke: 7



BeitragVerfasst: Mo 10.10.11 21:45 
Danke das hat das Problem gelöst (;
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mo 10.10.11 21:45 
Die Funktion ist auch falsch programmiert, siehe Doku:
msdn.microsoft.com/e...esktop/ms724432.aspx hat folgendes geschrieben:
On output, the variable receives the number of TCHARs copied to the buffer, including the terminating null character.


Korrekt wäre:
ausblenden Delphi-Quelltext markieren
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;
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 356
Erhaltene Danke: 7



BeitragVerfasst: Di 11.10.11 00:36 
Dann auch nocheinmal ein Danke an Sie Herr Jaenicke!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home