Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0046: Alle Netzwerkressourcen erfassen

 von 

Beschreibung 

Dieses Programm durchsucht das angeschlossene Netzwerk nach allen vorhanden Ressourcen, wie Rechnern, freigegebenen Ordnern und Druckern. Es liefert neben dem Netzwerktypen auch die Namen der Arbeitsgruppen und Domänen.

Update: Nun wird auch eine einzelne Ressource angezeigt.
Update von Mgalpha (): Das komplette Projekt wurde noch einmal überarbeitet.

Schwierigkeitsgrad:

Schwierigkeitsgrad 3

Verwendete API-Aufrufe:

RtlMoveMemory (CopyMemory), WNetAddConnection2A (WNetAddConnection2), WNetCloseEnum, WNetEnumResourceA (WNetEnumResource), WNetOpenEnumA (WNetOpenEnum), lstrlenA (lstrlen)

Download:

Download des Beispielprojektes [4,49 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Listen-Steuerelement "Liste"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"


'Update by MGalpha
'WWW.grcs.de am 17.08.03
'eine Erklärung finden sie unter Module1

Option Explicit

Private FormAendern As Long

Private Sub Command1_Click()
    Label1.Caption = "Einen Moment bitte ..."
    Liste.Clear
    Netsuche1
    
    Label1.Caption = "Fertig  ..."
End Sub

Private Sub Form_Load()
    FormAendern = Form1.Width - Liste.Width
End Sub

Private Sub Form_Resize()
    Liste.Width = Form1.Width - FormAendern
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'--------- Anfang Modul "Module1" alias Module1.bas ---------
Option Explicit



'halllöle ich habe mir mal erlaubt das Ding hier zu Vereinfachen !
'hoffe jetzt finden sich hier einige mehr durch
'ausserdem habe ich die Intger durch Long ersetzt!
'Und die Max hochgesetzt auf 1024 geändert falls das
'nicht ausreicht dann 2048 einsetzen
'Euer Mgalpha = MGalpha@gmx.de
'
'Tut mir aber bitte ein Gefallen und macht nicht die selben Fehler
'wie dieser Programierer
'Einfach zu Koplieziert !
'und zuviele überflüßige Programm zeilen !
'das klaut leistung


Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
        "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal _
        lpPassword As String, ByVal lpUserName As String, ByVal _
        dwFlags As Long) As Long
        
Private Declare Function WNetOpenEnum Lib "mpr.dll" Alias _
        "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As _
        Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum _
        As Long) As Long
        
Private Declare Function WNetEnumResource Lib "mpr.dll" Alias _
        "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, _
        lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long
        
Private Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum _
        As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
        (lpTo As Any, lpFrom As Any, ByVal lLen As Long)
        
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" _
        (ByVal lpString As Any) As Long
        
Private Type NETRESOURCE
  dwScope As Long
  dwType As Long
  dwDisplayType As Long
  dwUsage As Long
  pLocalName As Long
  pRemoteName As Long
  pComment As Long
  pProvider As Long
End Type

Private Type NETRESOURCE_REAL
  dwScope As Long
  dwType As Long
  dwDisplayType As Long
  dwUsage As Long
  sLocalName As String
  sRemoteName As String
  sComment As String
  sProvider As String
End Type

Private Const RESOURCE_CONNECTED As Long = &H1&
Private Const RESOURCE_GLOBALNET As Long = &H2&
Private Const RESOURCE_REMEMBERED As Long = &H3&

Private Const RESDTYPE_DIRECTORY As Long = &H9&
Private Const RESDTYPE_DOMAIN As Long = &H1&
Private Const RESDTYPE_FILE As Long = &H4&
Private Const RESDTYPE_GENERIC As Long = &H0&
Private Const RESDTYPE_GROUP As Long = &H5&
Private Const RESDTYPE_NETWORK As Long = &H6&
Private Const RESDTYPE_ROOT As Long = &H7&
Private Const RESDTYPE_SERVER As Long = &H2&
Private Const RESDTYPE_SHARE As Long = &H3&
Private Const RESDTYPE_SHAREADMIN As Long = &H8&

Private Const RESOURCETYPE_ANY As Long = &H0&
Private Const RESOURCETYPE_DISK As Long = &H1&
Private Const RESOURCETYPE_PRINT As Long = &H2&
Private Const RESOURCETYPE_UNKNOWN As Long = &HFFFF&

Private Const RESOURCEUSAGE_ALL As Long = &H0&
Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&
Private Const RESOURCEUSAGE_CONTAINER As Long = &H2&
Private Const RESOURCEUSAGE_RESERVED As Long = &H80000000

Private Const NO_ERROR As Long = 0&
Private Const ERROR_MORE_DATA As Long = 234&
Private Const RESOURCE_ENUM_ALL As Long = &HFFFF&


Public Function Netsuche1()
    Const MAX_RESOURCES = 2048
    Const NOT_A_CONTAINER = -1
    
    'VARS
    Dim bFirstTime As Boolean, Läufer As Long, lRet As Long, hEnum As Long
    Dim lCnt As Long, lMin As Long, lLen As Long, lBufSize As Long
    Dim lLastIx As Long, l As Long, NetAusgabe As String
    
    'samel Vars
    Dim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE
    Dim uNet() As NETRESOURCE_REAL
    
    bFirstTime = True
    
    '### Ressourcen Auslesen
    Do
        If bFirstTime Then
            lRet = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, _
                                RESOURCEUSAGE_ALL, ByVal 0&, hEnum)
            bFirstTime = False
        Else
            If uNet(lLastIx).dwUsage And RESOURCEUSAGE_CONTAINER Then
                lRet = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, _
                                RESOURCEUSAGE_ALL, uNet(lLastIx), hEnum)
        Else
            lRet = NOT_A_CONTAINER
            hEnum = 0
        End If
        
            lLastIx = lLastIx + 1
        End If
        
        If lRet = NO_ERROR Then
            lCnt = RESOURCE_ENUM_ALL
            
            Do
                lBufSize = UBound(uNetApi) * Len(uNetApi(0)) / 2
                lRet = WNetEnumResource(hEnum, lCnt, uNetApi(0), lBufSize)
                
                If lCnt > 0 Then
                
                    ReDim Preserve uNet(0 To lMin + lCnt - 1) _
                                   As NETRESOURCE_REAL
                    
                    For l = 0 To lCnt - 1
                        uNet(lMin + l).dwScope = uNetApi(l).dwScope
                        uNet(lMin + l).dwType = uNetApi(l).dwType
                        uNet(lMin + l).dwDisplayType = uNetApi(l).dwDisplayType
                        uNet(lMin + l).dwUsage = uNetApi(l).dwUsage
                        
                        If uNetApi(l).pLocalName Then
                            lLen = lstrlen(uNetApi(l).pLocalName)
                            uNet(lMin + l).sLocalName = Space$(lLen)
                            CopyMemory ByVal uNet(lMin + l).sLocalName, _
                                ByVal uNetApi(l).pLocalName, lLen
                        End If
                        
                        If uNetApi(l).pRemoteName Then
                            lLen = lstrlen(uNetApi(l).pRemoteName)
                            uNet(lMin + l).sRemoteName = Space$(lLen)
                            
                            CopyMemory ByVal uNet(lMin + l).sRemoteName, _
                                ByVal uNetApi(l).pRemoteName, lLen
                        End If
                        
                        If uNetApi(l).pComment Then
                            lLen = lstrlen(uNetApi(l).pComment)
                            uNet(lMin + l).sComment = Space$(lLen)
                            
                            CopyMemory ByVal uNet(lMin + l).sComment, _
                                ByVal uNetApi(l).pComment, lLen
                        End If
                        
                        If uNetApi(l).pProvider Then
                            lLen = lstrlen(uNetApi(l).pProvider)
                            uNet(lMin + l).sProvider = Space$(lLen)
                            
                            CopyMemory ByVal uNet(lMin + l).sProvider, _
                                ByVal uNetApi(l).pProvider, lLen
                        End If
                        DoEvents
                    Next l
                End If
            
                lMin = lMin + lCnt
                DoEvents
            Loop While lRet = ERROR_MORE_DATA
        End If
        If hEnum Then l = WNetCloseEnum(hEnum)
        DoEvents
    Loop While lLastIx < lMin

    '### Auswerten wenn nichts da dann exit sub
    If UBound(uNet) + 1 = 0 Then Exit Function
    
    For Läufer = 0 To UBound(uNet)
        Select Case uNet(Läufer).dwDisplayType
          Case RESDTYPE_DIRECTORY:  '= "Ordner"
              
              NetAusgabe = "ordner " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
              
          Case RESDTYPE_DOMAIN:     '= "Domäne"
              NetAusgabe = "Domäne: " & Trim(uNet(Läufer).sRemoteName)
              
          Case RESDTYPE_FILE:       '= "Datei"
              NetAusgabe = "datei " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
                  
          Case RESDTYPE_GENERIC:    '= "Generic"
              NetAusgabe = "datei " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
                  
          Case RESDTYPE_GROUP:      '= "Gruppe"
              NetAusgabe = "Gruppe " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
                  
          Case RESDTYPE_NETWORK:    '= "Netzwerk"
              NetAusgabe = "datei " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
                  
          Case RESDTYPE_ROOT:       '= "Root"
              NetAusgabe = "root " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
                  
          Case RESDTYPE_SERVER:     '= "Rechner"
              NetAusgabe = "Rechner " & uNet(Läufer).sComment & " " & _
                  uNet(Läufer).sRemoteName
    
          Case RESDTYPE_SHARE:      '= "Freigabe"
              NetAusgabe = "freigabe " & uNet(Läufer).sRemoteName
              
          Case RESDTYPE_SHAREADMIN: '= "Freigaben Admin"
              NetAusgabe = "Freigaben Admin " & _
                  "A1 " & uNet(Läufer).dwDisplayType & _
                  "A2 " & uNet(Läufer).dwScope & _
                  "A3 " & uNet(Läufer).dwType & _
                  "A4 " & uNet(Läufer).dwUsage & _
                  "A5 " & uNet(Läufer).sComment & _
                  "A6 " & uNet(Läufer).sLocalName & _
                  "A7 " & uNet(Läufer).sProvider & _
                  "A8 " & uNet(Läufer).sRemoteName
          End Select
          
          'in Liste einsetzen
          If Len(NetAusgabe) > 0 Then
              Form1.Liste.AddItem NetAusgabe
              NetAusgabe = ""
          End If
      Next Läufer
End Function


'---------- Ende Modul "Module1" alias Module1.bas ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 26 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Timo am 12.01.2007 um 11:17

Leider geht das nur, wenn das Netzlaufwerk bereits verbunden ist.

Kommentar von Hans-Jörg Stradtmann am 02.05.2005 um 16:32

Hallo Manuela,

dann klick mal in dem Fenster "Eigenschaften von Internetprotokoll (TCP/IP)" auf "folgende IP-Adresse verwenden". In dem Kasten IP-Adresse trägst
Du z.B. ein "192.168.0.1". Die Subnetzmaske stellt sich automatisch auf "255.255.255.0" ein. Danch Übernehmen und Ok. Am Besten danach einmal
booten, wenn er das nicht sowieso will.
p.s: Übrigens ist "ich habe ihre Anweisungen befolgt" zwar eine sehr höfliche Anrede, und nach Jahrzehnten im Ruhrpott bin ich ganz glücklich,
dass mich mal wieder einer "Siezt". Aber im Forum wird (warum auch immer) nur "Geduzt".

MFG Hajo

Kommentar von Hajo am 01.05.2005 um 21:38

Hallo Manuela,

bei meinem letzten Posting war leider die mail-Adresse verkehrt. Hier die richtige: hans-joerg.stradtmann@uni-essen.de Vielleicht kannst Du mir Deine Sachen direkt dahin schicken.

Gruß Hajo

Kommentar von Hajo am 01.05.2005 um 21:20

Hallo Manuela,

ich würde ja gerne weiter helfen, aber dazu muss ich wissen, ob zw. Deinem Rechner und dem DSL-Modem noch ein Gerät angeschlossen ist. Ausserdem ist
ist interessant, was in dem Fenster steht, das Dir die TCP/IP EIgenschaften anzeigt. Dahin kommst Du mit "Start - Systemsteuerung -
Netzwerkverbindungen" (Doppelklick). Das Fenster,das sich dann öffnet, zeigt Deine LAN-Verbindungen an. Mach einen Rechtsklick auf die LAN-
Verbindung und wähle "Eigenschaften". Jetzt wählts Du Internetprotokoll TCP/IP aus (Häkchen nicht weg machen) und klickst auf Eigenschaften. Da
stehen alle wichtigen Dinge drin. Vielleicht kannst Du mir ein paar Screenshots von den einzelnen Seiten senden, oder die Daten notieren und mir so
schicken.

Kommentar von Manuela am 01.05.2005 um 19:10

also... da steht einmal:
Breitband
TOSW-internal Settings
Verbindungsherstellung mit firewall
WAN-Miniport (PPPOE)

und dann noch der internetdienstanbieter... als ich den gesehen hab hb ich gemerkt das ich gar nicht über den dienstanbieter reingegangen bin, sondern über

LAN Verbindung
ADMtek AN983 10/100 Mbps PCI Adapter

dann hab ich doppelklick auf den Internetdiensanbieter gemacht, da musste ich Benutzername und Kennwort eingeben dann, aber ich komm nicht rein. Das Kennwort und der Benutzername sind falsch...ach da is immer was andres... kannst du mir sagen was ich machen soll... der benutzername und das kennwort können nicht falsch sein und bei t-online bin ich ja angemeldet... ich kann nur über die LAN Verbindung ins Internet

Kommentar von Hajo am 01.05.2005 um 17:31

Hallo Manuela,

ein Router, Switch oder Hub sind Geräte, die zwischen dem DSL-Modem und Deinem Rechner hängen. Damit kann man noch mehr Rechner an das Netzwerk anbinden. Hast Du nichts der gleichen, versuche folgendes: "Start - Systemsteuerung - Netzwerkverbindungen" und teile mir mit, was dort angezeigt wird.

Gruß Hajo

Kommentar von Manuela am 01.05.2005 um 17:18

Hi Hajo, ich hab windows XP...ähm wenn du mir sagst was ein Router ist, sag ich dir ob ich einen hab^^ also weiss nicht.Ich war schon im chat...da konnte mir auch keiner weiterhelfen.. das problem ist vorallem das ich nicht downloaden kann oder auch keine chats nutzen kann. wie du vllt schon gemerkt hast bin ich was computer angeht net sehr belesen*g* ich hoffe du bist noch online und kannst mir eventuell helfen..
Manuela

Kommentar von Hajo am 01.05.2005 um 15:26

Hallo Manuela,

welches Betriebssytem hast Du ? Hast Du einen Router, über den Du in das Internet gehst ? Melde Dich doch mal im Stammtisch oder im Chat an. Vielleicht kann Dir da auch schon einer weiterhelfen ! (Übrigens: Wenn Du hier Sachen posten kannst, kann der Fehler nicht so schwerwiegend sein.)

Gruß

Hajo

Kommentar von HELP!! am 01.05.2005 um 10:10

Helft mir!!
Ich weiß nicht was ich noch machen soll...
Ich hab einen DSL-Anschluss und hab Probleme mit meinem Netzwerk. Da steht irgend so'n scheiß von wegen "Eingeschränkte oder keine Konnektivität" und "Es besteht eventuell keine Verbindung mit dem Internet oder einigen Netzwerkressourcen.Dieses Problem ist aufgetreten, weil das Netzwerk diesem Computer keine Netzwerkadresse zugewiesen hat" Na toll -.-"
Dann hab ich auf "Reparieren" gedrückt... hat auch net geholfen. Jetzt soll ich mich an den Netzwerkverwalter wenden.Aber woher soll ich wissen wer das ist? Ich blick überhauptnicht mehr durch....bitte helft mir. Könnt ihr mir hier im Forum antworten weil ich mir net mal sicher bin das ich meine E-Mails abholen kann wegen der "Eingeschränkten Konnektivität" ^^ scheiße...
ich wäre euch sehr verbunden wenn ihr mir helfen würdet*g*
Manuela

Kommentar von Egger Christoph am 19.12.2003 um 18:21

Hi

Der Tipp ist wirklich toll, nur eine Frage habe ich!

Ich verwende die Infos zum Ermitteln der Rechner, die in einem Netzwerk laufen, um sie dann herunterzufahren.
Das funktioniert alles klaglos, nur wenn ich nochmals nachsehe, welche Rechner noch eingeschaltet sind, erscheinen die "Heruntergefahrenen" auch noch, obwohl sie definitiv nicht mehr im Netz sind. Erst wenn ich den Rechner, von dem ich das Programm aus laufen lasse, neu starte, erscheinen die "heruntergefahrenen Rechner" nicht mehr.
Gibt da nicht so eine Art "Refresh", um die Anzeige Ohne Neustart zu aktualisieren?
Gruß Chris

Kommentar von Hans-Jörg Stradtmann am 29.11.2003 um 16:58

Das Beispiel läuft soweit ganz gut. Nur hätte ich jetzt gerne es so aufgelistet, daß die Rechner und deren Freigaben den einzelnen Domänen zugeordent werden. Ausserdem wäre die MAC-Adresse, die IP-Adresse und der Benutzername nicht schlecht. Wie mach ich das ??? (Erst mal mit dem ersten Satz anfangen)

Gruß
Hajo

Kommentar von MGalpha am 17.08.2003 um 02:14

luet kann ich dir nciht sagen bei mir geht das unter win 98 me , xp , 2000

sag mir doch mal was du für ein VB benutzt
aber zur allgemeinen verständlichkeit werde ich mal an den sys. ein updatet mit vereinfachung schicken !
vieliecht hillft das bei eurin probs ???

Kommentar von mgalpha am 17.08.2003 um 02:09

mal erlich
wenn du nur einen eintrag hast was schier unmöglich ist
ist der UBound(uNet) mindestens 1
0 bedeutet er ist nicht geladen

so ist das zumindest bei mir !
Betriebsysteme :
win 95, win 98 , win me , win xp , win 2000
VB: 6 (sp 4,5)

Kommentar von Jonathan am 10.05.2003 um 22:00

Hier in der Zeile ist ein Fehler:
'### Auswerten
If UBound(uNet) > 0 Then

Da es auch nur ein Eintrag sein kann, und der Ubound dann 0 ist.

Kommentar von luet am 01.08.2002 um 20:25

Sehr interessanter Beitrag, nur funzt er bei mir unter Win 98 + ME nicht . Unter Win2K funzt er warum ?
Es wäre super wichtig für mich zu wissen wo der Haken ist.
Danke

Kommentar von Klaus Ferst am 16.07.2002 um 18:59

Wie kann man erfahren welcher aktuelle Benutzer zu welcher Gruppe gehört ?

Kommentar von Olli am 28.06.2002 um 09:29

Bei mir hauts auch nich hin.

Kommentar von Sven am 31.10.2001 um 12:54

Tag, kann mir jemand helfen dieses blöde Ding funktioniert nicht so richtig.Hat jemand anderst ein lauffähiges VB_Programm mit dem man die Ressourcen im Netzwerk auslesen kann?

Kommentar von PCO am 21.10.2001 um 18:52

Funzt ganz gut (jetzt) hat aber die Tücke dass garantiert nicht alle Resourcen angezeigt werden. Insbesondere Dateien fehlen vollständig. Ichh habe bereits MAX_RESOURCES auf 512 erhöht. Bei 312 Resourcen ist aber dennoch Schluss. Das ist leider erheblich zu wenig... Bin mehrmals durch den Code gegangen, komme aber nicht drauf woran das liegt. Wers weiss, kann mich ja mal per Mail kontakten

Kommentar von Rudi am 09.08.2001 um 11:55

Einfache Sache:
F ist länger als 35 Zeichen, und der Space kann nun mal nicht kürzer als 0 werden.
Lösung:
Entweder die 35 erhöhen oder die Space()-Funktion komplett rausschmeißen.

Kommentar von Revenant am 07.08.2001 um 14:29

Ungültiger Prozeduraufruf oder Ungültiges Argument
Das bekomme ich bei dieser Zeile:
F = F & Space(35 - Len(F)) & nRem
Woran kann das liegen?
mfg
Revenant
PS: Bitte die Antwort an meine E-Mail Adresse! thx

Kommentar von Marcus Schmitz am 22.07.2001 um 17:48

Diese Routine ist sehr gut. Leider hat der Autor an einer ganz bestimmten Stelle aufgehört, nämlich da, wo eine hierarchische Zuordnung erstellt werden müßte. Deshalb meine Frage, ob der Autor diese Routine nicht noch mit einem Treeview verbinden kann und dieses entsprechend wie im Windows-Explorer füllt?

Kommentar von devil am 21.05.2001 um 10:24

hmm bei uns find das ding nur novellmist und server, aber mein eigentliches problem is nich behoben.
ich will in einem netzwer sämtliche rechner finden und deren freigaben durchwühlen... aber das habe ich damit nich hinbekommen :(

Kommentar von PCO am 11.02.2001 um 22:51

Naja, jetzt läuft es. Habe ein DoEvent mittels Timer aktiviert. Das läuft auf und reaktiviert das Formular, sobald auch nur ein wenig Laufzeit dafür zu kriegen ist. Leider zeigt mir das Proggie nur Domänen an. Keine Rechner, keine Drucker... kann man das Laufzeitverhalten irgendwie optimieren?
PCO

Kommentar von PCO am 11.02.2001 um 22:25

Gute Sache das... aber leider stürzt die Angelegenheit in unserem (zugegeben recht grossen) Netzwerk ab. Irgendwann meldet Win, dass die Anwendung nicht mehr reagiert.::

Kommentar von Thomas am 25.01.2001 um 20:20

Läuft eigentlich ganz gut... ein Bug hat das Ding jedoch noch.
Bein längeren Netwerkfreigabnen Crash in der Funktion GetNetRessources() beim schreiben ins ListFeld.
Ansonsten... Hat mir SEHR geholfen... Happy THX!