AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetUserNameEx

Ein Thema von Luckie · begonnen am 29. Mär 2006 · letzter Beitrag vom 7. Mär 2010
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#31

Re: GetUserNameEx

  Alt 10. Jul 2006, 19:29
Zitat von sakura:
Übernehmt diesen Beitrag endlich in die CodeLibrary.
Da bemüht man sich, nur funktionierendes in die CL aufzunehmen und wird so angemotzt, naja, Copy&Paste ...
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: GetUserNameEx

  Alt 10. Jul 2006, 19:51
Hallo,

bei mir ergibt es folgendes:
Zitat von Project1:
0: Der angegebene Benutzer ist nicht vorhanden
1: CN=Oliver Funcke,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=Softw areUnion,DC=local
2: SOFTWAREUNION\Oliver Funcke
3: Oliver Funcke
6: {fa58c2e6-f3b6-470c-93b1-672ac82cd0e5}
7: SoftwareUnion.local/MyBusiness/Users/SBSUsers/Oliver Funcke
8: Oliver Funcke@SoftwareUnion.local
9: SoftwareUnion.local/MyBusiness/Users/SBSUsers
Oliver Funcke
10: Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt
11: Der angegebene Benutzer ist nicht vorhanden
Interessant dabei:
Ich musste die Zeile mit SetString so umformulieren, da sonst das Nullbyte mit drin ist (ungünstig z.B. für ShowMessage):
SetString(Username, Buffer, Size-1) Und bei (9 steht tatsächlich ein $A for dem eigentlichen Namen
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#33

Re: GetUserNameEx

  Alt 17. Feb 2007, 11:22
Mal eine ganz dumme Frage: In welcher Unit steht denn getusernameex? getusername findet er, aber getusernameex?

Ich hab alle D-2005 Standardunits eingebunden...
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: GetUserNameEx

  Alt 17. Feb 2007, 11:26
Zitat von ichbins:
Mal eine ganz dumme Frage: In welcher Unit steht denn getusernameex? getusername findet er, aber getusernameex?
Nirgends, siehe erster Post hier im Thread, da steht der Import aus der DLL.
Delphi-Quellcode:
function GetUserNameEx(NameFormat: DWORD;
  lpNameBuffer: LPSTR; var nSize: DWORD):Boolean; stdcall;
  external 'secur32.dllName 'GetUserNameExA';
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#35

Re: GetUserNameEx

  Alt 17. Feb 2007, 11:32
Sorry das hab ich irgendwie übersehen
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#36

Re: GetUserNameEx

  Alt 27. Aug 2009, 08:53
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:
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.dllName {$IF SizeOf(Char) = 1} 'GetUserNameExA{$ELSE} 'GetUserNameExW{$IFEND};
[add]
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 , 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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#37

Re: GetUserNameEx

  Alt 9. Feb 2010, 12:54
weiß einer warum das nicht compilierbar ist?..

Delphi-Quellcode:
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.dllName '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.
bekomme diese meldung.
[DCC Fehler] Unit1.pas(50): E2010 Inkompatible Typen: 'Array' und 'PAnsiChar'
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#38

Re: GetUserNameEx

  Alt 9. Feb 2010, 13:02
Geht es so?
if GetUserNameEx(fFormat, @Buffer[0], Size) then
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#39

Re: GetUserNameEx

  Alt 9. Feb 2010, 13:03
mal eben durchgeschoben und kein Mecker bekommen!

Hast Du evtl. noch irgendwelche Reste aktiv?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#40

Re: GetUserNameEx

  Alt 9. Feb 2010, 13:07
Über welche Delphiversion reden wir denn hier?
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 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