AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi benutzerkonten über das netztwerk abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

benutzerkonten über das netztwerk abfragen

Ein Thema von Harry M. · begonnen am 13. Feb 2005 · letzter Beitrag vom 19. Feb 2005
 
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#8

Re: benutzerkonten über das netztwerk abfragen

  Alt 19. Feb 2005, 12:34
ich habe mir das jetzt nochmal zu gemüte geführt. wie ich die deklaration in aus ntuser.pas übersehn konnt ist mir nicht recht klar. aber naja.... ich habe jetzt mal noch einige änderungen vorgenommen. nun kann man es compilieren.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TStringArray = array of WideString;

type
  TUser = packed record
    Name: WideString;
    UserGroups: TStringArray;
  end;
  TUsers = array of TUser;

var
  Form1: TForm1;
  Computer : WideString;

function EnumUsers(const Server: WideString; filter: DWORD): TStringArray;

implementation

{$R *.dfm}
uses MpuWinNT;

function EnumUsers(const Server: WideString; filter: DWORD): TStringArray;
var
  ui1, pWork : Pointer;
  EntriesRead, EntriesTotal: DWORD;
  NetError : DWORD;
  Loop : Integer;
begin
  pWork := nil;
  if Server <> 'then
  begin
    try
      NetError := NetUserEnum(PWideChar(Server), 0, filter, ui1,
        MAX_PREFERRED_LENGTH, EntriesRead, EntriesTotal, nil);
      if (NetError = NERR_SUCCESS) and (EntriesRead > 0) then
      begin
        pWork := ui1;
        SetLength(Result, EntriesRead);
        for Loop := 0 to EntriesRead - 1 do
        begin
          Result[Loop] := PUserInfo1(ui1)^.usri1_name;
          Inc(Integer(ui1), sizeof(Pointer));
        end;
      end;
    finally
      NetApiBufferFree(pWork);
    end;
  end;
end;

function GetUsers(const Computer: WideString): TUsers;
var
  Users : TStringArray;
  i, j : Integer;
  ui3 : TUserInfo3;
  UserGroups : TStringArray;
begin
  Users := EnumUsers(Computer, FILTER_NORMAL_ACCOUNT);
  SetLength(Result, Length(Users));
  for i := 0 to Length(Users) - 1 do
  begin
    // reset array -> delete old values
    SetLength(UserGroups, 0);
    //GetUserInfo(Computer, Users[i], ui3);
    Result[i].Name := ui3.usri3_name;
    //UserGroups := GetUserGroups(Computer, Users[i]);
    SetLength(Result[i].UserGroups, Length(UserGroups));
    for j := 0 to Length(UserGroups) - 1 do
      Result[i].UserGroups[j] := UserGroups[j];
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Computer := '192.168.0.10';
  GetUsers(Computer);
end;

end.
aber so ganz richtig ist das immer noch nicht. wenn man das prog starte und ausführt, bleibt es hängen ohne debuggermeldung. es lässt sich dann auch nicht mehr schließen. deinen tipp mich erstmal mit den grundlagen vertraut zu machen über dynamische arrays und schleifen würde ich gern beherzigen. nur ich habe füher immer schon weitergeblättert (als ich noch das ein oder ander delphi-buch laß) wenn es um arrays und schleifen ging. so recht habe ich das nie verstanden. andere haben problme mit mathematischen formeln oder in chemie und bei mir sind es nunmal arryas und schleifen.http://www.smiliearchiv.com/smilies/...childer_78.gif
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
 


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 07:30 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 by Thomas Breitkreuz