Re: GetUserNameEx
Zitat:
|
Re: GetUserNameEx
Hallo,
bei mir ergibt es folgendes: Zitat:
Ich musste die Zeile mit SetString so umformulieren, da sonst das Nullbyte mit drin ist (ungünstig z.B. für ShowMessage):
Delphi-Quellcode:
Und bei (9:) steht tatsächlich ein $A for dem eigentlichen Namen
SetString(Username, Buffer, Size-1)
|
Re: GetUserNameEx
Mal eine ganz dumme Frage: In welcher Unit steht denn getusernameex? getusername findet er, aber getusernameex?
Ich hab alle D-2005 Standardunits eingebunden... |
Re: GetUserNameEx
Zitat:
Delphi-Quellcode:
...:cat:...
function GetUserNameEx(NameFormat: DWORD;
lpNameBuffer: LPSTR; var nSize: DWORD):Boolean; stdcall; external 'secur32.dll' Name 'GetUserNameExA'; |
Re: GetUserNameEx
Sorry das hab ich irgendwie übersehen :oops:
|
Re: GetUserNameEx
Moin,
ich versuche die GUID des aktuellen Benutzers auszulesen und bekomme nur diese Meldung: GetLastError: 1332 Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt Was läuft denn da nur schief? benutzte GetUserNameExW
Delphi-Quellcode:
[add]
Type EXTENDED_NAME_FORMAT = LongWord;
Const NameUniqueId = EXTENDED_NAME_FORMAT(6); Function GetUserNameEx(NameFormat: EXTENDED_NAME_FORMAT; NameBuffer: PChar; Var Size: LongWord): Boolean; StdCall; External 'Secur32.dll' Name {$IF SizeOf(Char) = 1} 'GetUserNameExA' {$ELSE} 'GetUserNameExW' {$IFEND}; der Puffer ist mit 38 Zeichen (39 inkl. #0) groß genug und ich hab auch schon andere Werte versucht - kleiner, dann kommt der "zu kleiner Puffer"-Fehler - größer ändert nix also am Puffer liegt es nicht ich probier jetzt aber auch mal andere Formate (EXTENDED_NAME_FORMAT) aus [add2] alleine NameSamCompatible liefert ein Ergebnis, sonst kommt immer nur die 1332 :? [add3] arg :wall: , vergeßt es, ich seh grad, daß es der selbe Fehler ist, wie ihn Luckie schon auf Seite 1 hatte und hier hatte eh keiner 'ne Lösung :cry: |
Re: GetUserNameEx
weiß einer warum das nicht compilierbar ist?..
Delphi-Quellcode:
bekomme diese meldung.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} const NameUnknown = 0; // Unknown name type. NameFullyQualifiedDN = 1; // Fully qualified distinguished name NameSamCompatible = 2; // Windows NT® 4.0 account name NameDisplay = 3; // A "friendly" display name NameUniqueId = 6; // GUID string that the IIDFromString function returns NameCanonical = 7; // Complete canonical name NameUserPrincipal = 8; // User principal name NameCanonicalEx = 9; NameServicePrincipal = 10; // Generalized service principal name DNSDomainName = 11; // DNS domain name, plus the user name function GetUserNameEx(NameFormat: DWORD; lpNameBuffer: LPSTR; var nSize: DWORD):Boolean; stdcall; external 'secur32.dll' Name 'GetUserNameExA'; function GetLoggedOnUserNameEx(fFormat: DWORD; var Username: String): DWORD; var Size: DWORD; Buffer: array [0..1024] of Char; begin Result := 0; Size := sizeof(Buffer); if GetUserNameEx(fFormat, Buffer, Size) then SetString(Username, Buffer, Size-1) else Result := GetLastError; end; procedure TForm1.Button2Click(Sender: TObject); const NameFormats : Array[0..9] of DWORD = ( NameUnknown, NameFullyQualifiedDN, NameSamCompatible, NameDisplay, NameUniqueId, NameCanonical, NameUserPrincipal, NameCanonicalEx, NameServicePrincipal, DNSDomainName); var Username: String; err: DWORD; i : shortint; sMessage : string; begin for i := 0 to high(NameFormats) do begin err := GetLoggedOnUserNameEx(NameFormats[i], Username); if err = 0 then sMessage := sMessage+format('%d: %s', [NameFormats[i], Username])+#13 else sMessage := sMessage+format('%d: %s', [NameFormats[i], SysErrorMessage(err)])+#13; end; ShowMessage(sMessage) end; end. [DCC Fehler] Unit1.pas(50): E2010 Inkompatible Typen: 'Array' und 'PAnsiChar' |
Re: GetUserNameEx
Geht es so?
Delphi-Quellcode:
if GetUserNameEx(fFormat, @Buffer[0], Size) then
|
Re: GetUserNameEx
mal eben durchgeschoben und kein Mecker bekommen!
Hast Du evtl. noch irgendwelche Reste aktiv? Gruß K-H |
Re: GetUserNameEx
Über welche Delphiversion reden wir denn hier?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz