Announcement

Collapse
No announcement yet.

Rechnernamen in einer Domain ermitten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rechnernamen in einer Domain ermitten

    Hallo Leute,

    wie der Titel schon sagt: Wie kann ich die Rechner die sich gerade in einer Domain angemeldet haben ermitteln?

    Danke für eventl. Antworten
    HighBam

  • #2
    Hallo,

    das folgende Beispiel füllt alle vorgefundenen Domänen- (Workgroup) und Rechner-Namen in eine TTreeView-Instanz ein:
    <pre>
    procedure TForm1.LoadNetNode(TreeNode: TTreeNode; NetNode: PNetResourceA);
    var
    hEnum : THandle;
    dwCount : DWORD;
    dwBufSize : DWORD;
    pNR, pBuf : PNetResourceA;
    dwRet : DWORD;
    ChildNode : TTreeNode;
    begin
    dwRet := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0,
    NetNode, hEnum);
    if dwRet <> NO_ERROR then
    Exit;
    dwBufSize := 1000;
    GetMem(pBuf, dwBufSize);
    try
    while True do
    begin
    dwCount := $FFFFFFFF; // alle Items anfordern
    dwRet := WNetEnumResource(hEnum, dwCount, pBuf, dwBufSize);
    if dwRet = ERROR_MORE_DATA then
    begin
    // der Startwert von 1000 war zu klein
    dwCount := $FFFFFFFF;
    FreeMem(pBuf);
    GetMem(pBuf, dwBufSize);
    dwRet := WNetEnumResource(hEnum, dwCount, pBuf, dwBufSize);
    end;
    if dwRet = ERROR_NO_MORE_ITEMS then
    Break; // Fertig !
    if dwRet <> NO_ERROR then
    Abort; // dwRet enthält eine Fehlermeldung!
    pNR := pBuf;
    while dwCount > 0 do
    begin
    ChildNode := TV.Items.AddChild(TreeNode, pNR.lpRemoteName);
    LoadNetNode(ChildNode, pNR);
    Inc(pNR);
    Dec(dwCount);
    Inc(FPCCount);
    end;
    end;
    finally
    WNetCloseEnum(hEnum);
    FreeMem(pBuf);
    end;
    end;
    </pre&gt

    Comment

    Working...
    X