Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Eigenen Arbeitsgruppennamen ermitteln (https://www.delphipraxis.net/31755-eigenen-arbeitsgruppennamen-ermitteln.html)

Dt2158 13. Okt 2004 12:10


Eigenen Arbeitsgruppennamen ermitteln
 
hallo,

ich möchte eine möglichkeit haben, nicht über die registry, den namen meiner eigenen arbeitsgruppe zu erfahren.

Hinweise, wie "erst Suche verwenden" werde ich ignorieren, da ich gestern bereits stundenlang unter vielen Wortkombinationen gesucht habe.
Das einzig, was ich gefunden habe, sind funktionen aus der msdn libary, allerdings verstehe ich nicht wie man diese einsetzt.
Vielleicht könnte mir jemand bitte mal ein Beispiel geben, wie das funktioniert.

Danke Dt2158

Dt2158 13. Okt 2004 15:37

Re: Eigenen Arbeitsgruppennamen ermitteln
 
das kann doch nicht so schwer sein *push*, um den computernamen herauszufinden hab ich einige threads gefunden, aber die arbeitsgruppe :cry:

Sharky 13. Okt 2004 15:49

Re: Eigenen Arbeitsgruppennamen ermitteln
 
Hai Dt2158,

in der Delphi-PRAXIS darf erst nach min. 24h gepusth werden!

Suche mal nach dem Stichwort [dp]Domäne[/dp]

Luckie 13. Okt 2004 15:59

Re: Eigenen Arbeitsgruppennamen ermitteln
 
Zitat:

Zitat von Dt2158
Hinweise, wie "erst Suche verwenden" werde ich ignorieren, da ich gestern bereits stundenlang unter vielen Wortkombinationen gesucht habe.

Auch nach Hier im Forum suchenarbeitsgruppe :roll: Ich finde da zum Beispiel das: http://www.delphipraxis.net/internal...gruppe&start=0 und das: http://www.delphipraxis.net/internal...gruppe&start=0

Zitat:

Das einzig, was ich gefunden habe, sind funktionen aus der msdn libary, allerdings verstehe ich nicht wie man diese einsetzt.
Vielleicht könnte mir jemand bitte mal ein Beispiel geben, wie das funktioniert.
Wenn du uns verheimlichst, welche du gefunden hast und uns nichts mitteilst, was du da nicht verstehst, dürfte es sehr schwer werden dir ein Beispiel zu geben.

Zitat:

das kann doch nicht so schwer sein *push*, um den computernamen herauszufinden hab ich einige threads gefunden, aber die arbeitsgruppe
Und würdest du es bitte unterlassen nach drei Stunden schon dein Topic zu pushen?

Dt2158 13. Okt 2004 18:29

Re: Eigenen Arbeitsgruppennamen ermitteln
 
ja,die beiden threads hatte ich auch schon gecheckt!
ich wirklich schon alle sinnvollen threads mit "arbeitsgruppe" "domäne" durchgeschaut. Aber alle Threads laufen darauf hinaus alle Rechner im Netzwerk, in einer Arbeitsgruppe anzeigen und deren freigaben.

Ich bin sicher, das die Beispiele ganz dicht an meinem Problem heranführen, aber ich nicht in der Lage bin diese Beispiele umzuschreiben, dass sie mein Problem lösen.

Bitte nehmen wir folgendes Stück Code, was Luckie per Link präsentiert hat!

Code:
type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
var
  EnumHandle: THandle;
  BufSize: DWord;
  Res: DWord;
begin
  Result := False;
  List := Nil;
  Entries := 0;
  if WNetOpenEnum(RESOURCE_GLOBALNET,
                  ResourceType,
                  0,
                  NetResource,
                  EnumHandle) = NO_ERROR then begin
    try
      BufSize := $4000; // 16 kByte
      GetMem(List, BufSize);
      try
        repeat
          Entries := DWord(-1);
          FillChar(List^, BufSize, 0);
          Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
          if Res = ERROR_MORE_DATA then begin
            ReAllocMem(List, BufSize);
          end;
        until Res <> ERROR_MORE_DATA;

        Result := Res = NO_ERROR;
        if not Result then begin
          FreeMem(List);
          List := Nil;
          Entries := 0;
        end;
      except
        FreeMem(List);
        raise;
      end;
    finally
      WNetCloseEnum(EnumHandle);
    end;
  end;
end;

procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);

procedure ScanLevel(NetResource: PNetResource);
var
  Entries: DWord;
  NetResourceList: PNetResourceArray;
  i: Integer;
begin
  if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
    for i := 0 to Integer(Entries) - 1 do begin
      if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
        (NetResourceList[i].dwDisplayType = DisplayType) then begin
        List.AddObject(NetResourceList[i].lpRemoteName,
                      Pointer(NetResourceList[i].dwDisplayType));
      end;
      if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
        ScanLevel(@NetResourceList[i]);
    end;
  finally
    FreeMem(NetResourceList);
  end;
end;

begin
  ScanLevel(Nil);
end;
Code:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
end;
dieser code listet angeblich alle rechner im netzwerk!
ich brauch aber nur meine arbeitsgruppe.

man bin ich verzweifelt, suche jetzt schon seit gestern eine Lösung.

Christian Seehase 13. Okt 2004 20:36

Re: Eigenen Arbeitsgruppennamen ermitteln
 
Moin DT,

Zitat:

Zitat von Dt2158
Das einzig, was ich gefunden habe, sind funktionen aus der msdn libary, allerdings verstehe ich nicht wie man diese einsetzt.

welche hast Du denn gefunden?
Mir fallen da MSDN-Library durchsuchenNetWkstaGetInfo (ab NT 4.0) und MSDN-Library durchsuchenNetGetJoinInformation (ab Windows 2000) ein.

Wo liegt das Verständnisproblem?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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