![]() |
AW: GetUsernameEx
Zitat:
|
AW: GetUsernameEx
Delphi-Quellcode:
function GetUser: String;
const MAX_USERNAME_LENGTH = 256; var Buffer: Array[0..MAX_USERNAME_LENGTH] of WIDEChar; Size: DWord; begin Size := Pred(SizeOf(Buffer)); Winapi.Windows.GetUserName(Buffer, Size); Result := StrPas(Buffer); end; |
AW: GetUsernameEx
Zitat:
|
AW: GetUsernameEx
Zitat:
![]() |
AW: GetUsernameEx
Ich mach da einfach 2 Aufrufe wie von Bernhard schon angedeutet, siehe hier:
![]() |
AW: GetUsernameEx
@Uwe Raabe:
Du hast recht. Ich habe mich bei den Constanten vergriffen... Was mein DELPHI nicht kennt, muss ich dann eben selbst definieren: const MAX_USERNAME_LENGTH = 256; |
AW: GetUsernameEx
@hator: SizeOf .... Length ... Du mußt aufpassen, ob die API die Größe in Byte oder Chars haben will und ob die Größenangabe inklusive oder exclusive der abschließenden #0 ist.
|
AW: GetUsernameEx
Bei
const MAX_USERNAME_LENGTH = 256; var Buffer: Array[0..MAX_USERNAME_LENGTH] of WIDEChar; ist alles ALL INCLUSIVE. Aber sooo lange UserNames hat wohl keiner... da würde auch Buffer: Array[0..10] of WIDEChar; reichen..:-D |
AW: GetUsernameEx
OFFTOPIC:
Was ist das eigentlich für ein seltsamer Absturz? Gerade ist mein WIN 8.1 abgestürzt. Nach dem Booten war FIREFOX wieder vollständig da, incl. dem Edit-Fenster von der DP.:!::!::!: |
AW: GetUsernameEx
Zitat:
Dann erwartet die API die Größe exkl. der #0, womit sie mochmal weitere 2 Byte überschreiben könnte. Die API würde zwar nicht außerhalb des Puffers schreiben, aber wenn man ihr eine falsche Größe nennt, dann kann sie natürlich nichts dafür. 0..10 ... bei 11 bis 22 Chars würde es also Spaß machen. :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz