vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Netzwerkresourcen 
Autor: luet
Datum: 07.08.02 17:58

Hi,
vielen Dank für Deine Antwort ich hab die Hoffnung schon fast begraben das ich weiter komm. Aber das Problem ist ein bischen komplexer , am besten poste ich mal die Prozedur zum Auslesen der Netzwerkresourcen (läuft bei mir unter Win2000, aber nicht Win98/ME, aber dafür brauch ich es). Über weitere Hilfe Ideen freue ich mich jetzt schon!!!! :

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 CopyMem Lib "kernel32" Alias "RtlMoveMemory" _
(lpTo As Any, lpFrom As Any, ByVal lLen As Long)

Private Declare Sub CopyMemByPtr Lib "kernel32" Alias _
"RtlMoveMemory" (ByVal lpTo As Long, ByVal lpFrom As Long, _
ByVal lLen As Long)

Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _
(ByVal lpString1 As String, ByVal lpString2 As Any) 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

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

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

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

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

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


Public Function GetNetRessources() As Collection
Const MAX_RESOURCES = 256
Const NOT_A_CONTAINER = -1

Dim bFirstTime As Boolean
Dim lRet&, hEnum&, lCnt&, lMin&, lLen&, l&, lBufSize&, lLastIx&
Dim nRem$, F$
Dim ResList As Collection
Dim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE
Dim uNet() As NETRESOURCE_REAL
Dim Rechner As String
Dim Domaene As String
Dim Netzwerk As String
Rechner = "Rechner"
Domaene = "Domaene"
Netzwerk = "Netzwerk"
Set ResList = New Collection
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)
CopyMem 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)
CopyMem 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)
CopyMem 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)
CopyMem ByVal uNet(lMin + l).sProvider, _
ByVal uNetApi(l).pProvider, lLen
End If
Next l
End If

lMin = lMin + lCnt
Loop While lRet = ERROR_MORE_DATA
End If
If hEnum Then l = WNetCloseEnum(hEnum)

Loop While lLastIx < lMin

'### Auswerten
If UBound(uNet) > 0 Then
For l = 0 To UBound(uNet)
Select Case uNet(l).dwDisplayType
Case RESDTYPE_DIRECTORY: nRem = "Ordner"
Case RESDTYPE_DOMAIN
nRem = "Domäne"
DateiSuche.TreeView1.Nodes.Add Netzwerk, tvwChild, uNet(l).sRemoteName, uNet(l).sRemoteName, 10, 10
Domaene = uNet(l).sRemoteName

Case RESDTYPE_FILE
nRem = "Datei"
DateiSuche.TreeView1.Nodes.Add Rechner, tvwChild, uNet(l).sRemoteName + "\", Mid(uNet(l).sRemoteName, Len(Rechner) + 2), 2, 3

Case RESDTYPE_GENERIC: nRem = "Generic"
Case RESDTYPE_GROUP
nRem = "Gruppe"
DateiSuche.TreeView1.Nodes.Add Rechner, tvwChild, uNet(l).sRemoteName + "\", Mid(uNet(l).sRemoteName, Len(Rechner) + 2), 2, 3

Case RESDTYPE_NETWORK
nRem = "Netzwerk"
DateiSuche.TreeView1.Nodes.Add "Netzwerk", tvwChild, uNet(l).sRemoteName, uNet(l).sRemoteName, 9, 9
Netzwerk = uNet(l).sRemoteName

Case RESDTYPE_ROOT: nRem = "Root"
Case RESDTYPE_SERVER
nRem = "Rechner"
DateiSuche.TreeView1.Nodes.Add Domaene, tvwChild, uNet(l).sRemoteName, uNet(l).sRemoteName, 7, 7
Rechner = uNet(l).sRemoteName

Case RESDTYPE_SHARE
nRem = "Freigabe"

DateiSuche.TreeView1.Nodes.Add Rechner, tvwChild, uNet(l).sRemoteName + "\", Mid(uNet(l).sRemoteName, Len(Rechner) + 2), 2, 3


Case RESDTYPE_SHAREADMIN
nRem = "Freigaben Admin"
DateiSuche.TreeView1.Nodes.Add Rechner, tvwChild, uNe(l).sRemoteName+ "\", Mid(uNet(l).sRemoteName, Len(Rechner) + 2), 2, 3
End Select

'### Formatieren und speichern
F = uNet(l).sRemoteName & uNet(l).sComment

' F = F & Space(40 - Len(F)) & nRem
ResList.Add F
Next l
End If

Set GetNetRessources = ResList
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Netzwerkresourcen61luet05.08.02 19:19
Re: Netzwerkresourcen200Elwood05.08.02 20:15
Re: Netzwerkresourcen47luet05.08.02 20:57
Re: Netzwerkresourcen237Elwood05.08.02 21:23
Re: Netzwerkresourcen47derheld8106.08.02 23:14
Re: Netzwerkresourcen53luet07.08.02 17:58

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel