Entwickler-Ecke
Windows API - Username und System herausfinden
ByStones - So 28.08.05 19:34
Titel: Username und System herausfinden
Hi,
ich hab ein Problem, ich muss ein Variable mit dem Namen User den Namen des angemeldeten Users an dem PC wo das programm läuft Hineinschreiben. Und das gleiche mit System ( es wird die version gemeint z.B.: Xp, 2000, 98, 95, ...)
kann mir da bitte jemand helfen ????
Moderiert von
Christian S.: Topic aus Sonstiges verschoben am Di 30.08.2005 um 09:49
TM - So 28.08.05 19:39
Hallo,
von
http://www.dsdt.info/ :
Benutzer:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function GetUsername: String; var Buffer: array[0..255] of Char; Size: DWord; begin Size := SizeOf(Buffer); if not Windows.GetUserName(Buffer, Size) then RaiseLastOSError; SetString(Result, Buffer, Size - 1); end; |
Betriebssystem:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| function GetWinVersion: string; begin result:='Unbekannte Version'; case Win32Platform of 1: If Win32MajorVersion=4 Then Begin Case Win32MajorVersion of 0: result:='Windows 95'; 10: result:='Windows 98'; 90: result:='Windows Me'; end; end; 2: Case Win32MajorVersion of 3:IF Win32MinorVersion=51 then result:='Windows NT 3.51'; 4:If Win32MinorVersion=0 then result:='Windows NT 4'; 5:Case Win32MinorVersion of 0: result:='Windows 2000'; 1: result:='Windows XP'; 2: result:='Windows .NET Server'; end; End; end; if Win32CSDVersion<>'' then result:=result+' '+Win32CSDVersion; end; |
..
Ironwulf - So 28.08.05 19:40
im eh steht das dazu:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function GetUsername: String; var Buffer: array[0..255] of Char; Size: DWord; begin Size := SizeOf(Buffer); if not Windows.GetUserName(Buffer, Size) then RaiseLastOSError; SetString(Result, Buffer, Size - 1); end; |
RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten müssen an dieser Stelle RaiseLastWin32Error verwenden.
Zusätzlich sei noch erwähnt, dass die BDE eine gleichlautende Funktion mitbringt, die allerdngs nur vernünftig arbeitet, wenn eine Verbindung zu einer Datenbank besteht.
uind noch das für das os(win)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| function GetWinVersion: string; begin result:='Unbekannte Version'; case Win32Platform of 1: If Win32MajorVersion=4 Then Begin Case Win32MajorVersion of 0: result:='Windows 95'; 10: result:='Windows 98'; 90: result:='Windows Me'; end; end; 2: Case Win32MajorVersion of 3:IF Win32MinorVersion=51 then result:='Windows NT 3.51'; 4:If Win32MinorVersion=0 then result:='Windows NT 4'; 5:Case Win32MinorVersion of 0: result:='Windows 2000'; 1: result:='Windows XP'; 2: result:='Windows .NET Server'; end; End; end; if Win32CSDVersion<>'' then result:=result+' '+Win32CSDVersion; end; |
Moderiert von
Gausi: Code- durch Delphi-Tags ersetzt.
TM - So 28.08.05 19:42
Haha, war schneller :wink:
..
Holgerwa - So 28.08.05 19:46
Hallo,
ich nehme mal an, daß bei der Funktion GetWinVersion in der Zeile 7
Delphi-Quelltext
1:
| Case Win32MinorVersion of |
stehen soll... bei beiden Postings.
@TM: Oder ist das einer dieser versteckten Hinweise? :)
Holger
TM - So 28.08.05 19:54
Keine Ahnung, ich habs nur rauskopiert.
Ich konnts nor bei mir ausprobieren und xp erkennts richtig.
Aber könnte sein, weil auf meinem Notebook mit Me zeigts "unbekannt" an.
Um genaueres zu sagen fehlts mir leider an Verständnis, was dieser Text bewirkt :(
..
Holgerwa - So 28.08.05 20:04
Hallo,
@TM: Wenn Du das hier schreibst:
Delphi-Quelltext
1:
| If Win32MajorVersion=4 Then Begin |
dann ist diese Bedingung ja nur erfüllt, wenn Win32MajorVersion = 4 ist, also wäre ein anschießender Vergleich, ob der Wert 0, 10 oder 90 ist, sinnlos. Und es geht ja dann auch um die "Unterversion", also die Minorversion.
Holger
Delete - So 28.08.05 20:11
Ich bin hier mit:
http://www.luckie-online.de/Developer/Delphi/Sonstiges/WindowsVersion.html eigentlich immer sehr gut gefahren.
Und für den Bneutzer:
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; |
TM - Mo 29.08.05 13:33
@Holgerwa: Ok, klingt logisch.
Und da es so auch nicht funktioniert (wie gesagt, mein Me ist "unbekannt") glaub ich dir einfach mal.
..
Martin1966 - Di 30.08.05 09:32
hallo!
ich denke, dass es hier im Forum genug antworten (incl. sourcecode) gibt - da muss man nicht unbedingt auf fremde resourcen verlinken.
@ByStones: such einfach hier im Forum nach
GETUSERNAME und nach
GETVERSIONEX. solltest ein paar treffer erzielen. ;-)
lg martin
Delete - Di 30.08.05 13:49
Martin1966 hat folgendes geschrieben: |
| ich denke, dass es hier im Forum genug antworten (incl. sourcecode) gibt - da muss man nicht unbedingt auf fremde resourcen verlinken. |
Meinst du mich? Auf meiner HP weiß ich, wo es steht, hier im Forum müsste ich erst suchen.
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!