Announcement

Collapse
No announcement yet.

Computer in einem MicroSoft-Netzwerk (D5.x)

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

  • Computer in einem MicroSoft-Netzwerk (D5.x)

    Hallo!<br>
    <br>
    In einer NT-Umgebung mit einem MS-Netzwerk <b>und</b> Novell-Netzwerk möchte ich mir alle momentan in Netz befindlichen Computer (und User) anzeigen lassen.<br>
    Versucht habe ich es bisher mit folgendem Qellcode:<br>
    <br>
    <p><font face="curier new, times new roman, sans-serif">
    function TFrmNDMain.LoadNetNode(TreeNode: TTreeNode; pNetNode: PNetResourceA): Integer;<br>
    var<br>
    &nbsp;&nbsp;hEnum: THandle;<br>
    &nbsp;&nbsp;dwCount: DWORD;<br>
    &nbsp;&nbsp;dwBufSize: DWORD;<br>
    &nbsp;&nbsp;pNR, pBuf: PNetResourceA;<br>
    &nbsp;&nbsp;dwRet: DWORD;<br>
    &nbsp;&nbsp;ChildNode : TTreeNode;<br>
    begin<br>
    &nbsp;&nbsp;Result := 0;<br>
    &nbsp;&nbsp;dwRet := WNetOpenEnum(RESOURCE_GLOBALNET,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;RESOURCETYPE_ANY, RESOURCEUSAGE_CONNECTABLE, pNetNode, hEnum);<br>
    &nbsp;&nbsp;if dwRet <> NO_ERROR<br>
    &nbsp;&nbsp;then Exit;<br>
    &nbsp;&nbsp;dwBufSize := 1000;<br>
    &nbsp;&nbsp;GetMem(pBuf, dwBufSize);<br>
    &nbsp;&nbsp;try<br>
    &nbsp;&nbsp;&nbsp;&nbsp;while True do<br>
    &nbsp;&nbsp;&nbsp;&nbsp;begin<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.Pr ocessMessages;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwCount := $FFFFFFFF; // alle Items anfordern<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwRet := WNetEnumResource(hEnum, dwCount, pBuf, dwBufSize);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dwRet = ERROR_MORE_DATA<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then begin<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // der Startwert von 1000 war zu klein<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw Count := $FFFFFFFF;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fr eeMem(pBuf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ge tMem(pBuf, dwBufSize);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;dwRet := WNetEnumResource(hEnum, dwCount, pBuf, dwBufSize);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;if dwRet = ERROR_EXTENDED_ERROR<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th en MessageDlg('Erweiterter Netzwerkfehler', mtError, [mbOK], 0);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dwRet = ERROR_INVALID_HANDLE<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then MessageDlg('Ungültiges Handle!', mtError, [mbOK], 0);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dwRet = ERROR_NO_NETWORK<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then MessageDlg('Kein Netzwerk gefunden!', mtInformation, [mbOK], 0);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dwRet = ERROR_NO_MORE_ITEMS then<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Br eak; // Fertig !<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;if dwRet <> NO_ERROR then<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;Abort; // dwRet enthält eine Fehlermeldung!<br>
    &nbsp;&nbsp;&nbsp;&nbsppNR := pBuf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (dwCount > 0) and (dwRet = NO_ERROR) do<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ch ildNode := TV.Items.AddChild(TreeNode, pNR.lpRemoteName);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo adNetNode(ChildNode, pNR);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In c(pNR);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;De c(dwCount);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In c(FPCCount);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbspend;<br>
    &nbsp;&nbsp;&nbsp;&nbspend;<br>
    &nbsp;&nbspfinally<br>
    &nbsp;&nbsp&nbsp;&nbspResult := dwRet;<br>
    &nbsp;&nbsp&nbsp;&nbspWNetCloseEnum(hEnum);<br>
    &nbsp;&nbsp&nbsp;&nbspFreeMem(pBuf);<br>
    &nbsp;&nbspend;<br>
    end;<br>
    </font></p>
    <br>
    Ich bekomme zwar beide Netzwerke angezeigt, aber kann sie nicht "aufklappen" um (in diesem Fall) die Rechner zu sehen..?<br>
    <br>
    THANX!<br>
    <br>
    Nico Stöckigt

  • #2
    tcha prinzipell recht billig

    http://www.erm.tu-cottbus.de/delphi/sources.html

    in Loggedon2 sind BEIDE funktionen integriert!

    (allerdings nur für NT, da Novell jedoch auch als NT aufsatz verwendet werden kann, bin ich zuversichtlich ... wenn es klappt mal bitte mail schreiben)

    Ass

    Comment

    Working...
    X