um alle Benutzer (Computernamen) im Netzwerk aufzulisten nutze ich derzeit eine abgewandelte Version von PWS32 aus dem Codearchiv:
Code: Alles auswählen
Global NewList LocalNetworkClient.s()
Structure LocalNetwork_ServerInfoItem
PlatformID.l
*Name
VersionMajor.l
VersionMinor.l
Type.l
*Comment
EndStructure
Structure LocalNetwork_ServerInfo
Item.LocalNetwork_ServerInfoItem[0]
EndStructure
Procedure ExamineLocalNetwork()
Protected *DataBuffer.LocalNetwork_ServerInfo
Protected *IP.Long, *HostInfo.HOSTENT
Protected Index.i, CurrentDataCount.l, DataCount.l, ResumeHandle.l
ClearList(LocalNetworkClient())
If Not NetServerEnum_(0, 101, @*DataBuffer, -1, @CurrentDataCount, @DataCount, $FFFFFFFF, 0, @ResumeHandle)
For Index = 1 To CurrentDataCount
AddElement(LocalNetworkClient())
LocalNetworkClient() = PeekS(*DataBuffer\Item[Index-1]\Name, #PB_Default, #PB_Unicode)
Next
NetApiBufferFree_(*DataBuffer)
EndIf
ResetList(LocalNetworkClient())
EndProcedure
Macro NextLocalNetworkClient()
NextElement(LocalNetworkClient())
EndMacro
InitNetwork()
ExamineLocalNetwork()
While NextLocalNetworkClient()
Debug LocalNetworkClient()
Wend
Aber es funktioniert nicht überall.
In einigen LANs hängt er sich bei NetServerEnum_() einfach auf ...
Zudem funktioniert auf diesen Rechnern auch die Eingabeaufforderung: net view nicht.
Was könnten die Gründe dafür sein ? FireWall ? Andere Schutzprogramme ?
Wenn Ja, gibt es vermutlich keine andere Lösung die Nutzer aufzulisten, außer man deaktiviert diese Programme ?
Wäre nett, wenn ihr bei euch einfach mal diesen Code ausführt, und mir berichtet obs geht, oder wenn nicht, woran es liegen könnte.
Danke.