Entwickler-Ecke
Windows API - Benutzernamen herausfinden
GericasS - Mi 30.01.08 08:32
Titel: Benutzernamen herausfinden
Einen wunderschönen guten morgen,
ich hab diesen Source hier bei DSDT gefunden,
da ich nicht einfach copy und paste nutzen wollte und im Endeffekt nichts verstehe, meine frage ob mir das jmd. genau erklären könnte wie das abläuft.
:D
bzw. was die einzelnen zeilen bewirken !
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function GetUsername : String ; var Buffer: array[0..255] of Char; Size: DWord ; begin Size := SizeOf(Buffer); if not Windows.GetUserName(Buffer, Size) then RaiseLastWin32Error; SetString(Result, Buffer, Size -1 ); |
jaenicke - Mi 30.01.08 12:31
Nach dem begin:
1. Die Größe des Buffers (= Zwischenspeichers) in Size ablegen.
2. GetUserName mit dem Buffer und dessen Größe aufrufen. Der Buffer erhält in der Funktion dann die Daten in den innerhalb unserer Funktion belegten Arbeitsspeicher. Wir übergeben also den vorbereiteten Behälter und die Größe des Behälters und die Funktion legt die Daten rein.
3. Wenn die Funktion NICHT erfolgreich war, dann den zuletzt aufgetretenen Fehler als Exception auslösen, d.h. der wird dann auch angezeigt.
4. In Result soll der Inhalt von Buffer rein bis auf das abschließende Nullzeichen, dass du bei PChars (bzw. array of Char) dann hast. (Size wurde innerhalb von GetUserName auf den korrekten Wert gesetzt, so dass darin jetzt die tatsächliche Größe der Daten steht.)
Mehr zu dieses API-Funktionen findest du auch direkt bei Microsoft im MSDN: ;-)
http://msdn2.microsoft.com/en-us/library/ms724432(VS.85).aspx
(Links gehen mit solchen URLs nicht^^)
GericasS - Mi 30.01.08 12:44
hey jaenicke,
vielen vielen Danke für die ausführliche ERklärung, falls ich noch fragen habe schreib ich sie hier rein !
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!