我需要解决的问题是:用VB编个程序,能自动搜索局域网里所有共享的文件夹。局域网里的电脑用的是win2000系统。请高手帮忙。先谢了!
解决方案 »
- 急求助!如何读取和存储自定义格式的文件?
- 用open打开中文文件时提示文件不存在?
- VB 6.0中的自定义结构
- 从表插入数据到另一表,请教大家,谢谢
- 请问VB中在打开窗口后,如何获得窗口上对象的句柄。
- 如何实现类似QQ聊天记录的功能? Help!!!!!!!!
- vba制图
- 怎摸样在VB中读取和程序同一目录下的文件,"/filename"是不是不行?
- 请问如何将两个MPG文件合并成一个,谢谢!
- 黑幕*****************论政府采购中的微软出局----只提价格因素,蒙蔽一些不明真相的人**************
- 测字符串大小函数
- 紧急,在VB怎么读取一个TXT文件的修改时间,另加100分
http://www.applevb.com/sourcecode/nwhood.zip
行 22: 控件 imlNWImages 的类 MSComctlLib.ImageList 不是一个已加载的控件类。
行 88: 控件 tvwNetwork 的类 MSComctlLib.TreeView 不是一个已加载的控件类。
行 25: 属性名 _ExtentX 在 imlNWImages 中是无效的。
行 26: 属性名 _ExtentY 在 imlNWImages 中是无效的。
行 28: 属性名 ImageWidth 在 imlNWImages 中是无效的。
行 29: 属性名 ImageHeight 在 imlNWImages 中是无效的。
行 30: 属性名 MaskColor 在 imlNWImages 中是无效的。
行 31: 属性名 _Version 在 imlNWImages 中是无效的。
行 86: 属性名 Images 在 imlNWImages 中是无效的。
行 94: 属性名 _ExtentX 在 tvwNetwork 中是无效的。
行 95: 属性名 _ExtentY 在 tvwNetwork 中是无效的。
行 96: 属性名 _Version 在 tvwNetwork 中是无效的。
行 97: 属性名 HideSelection 在 tvwNetwork 中是无效的。
行 98: 属性名 Indentation 在 tvwNetwork 中是无效的。
行 99: 属性名 LabelEdit 在 tvwNetwork 中是无效的。
行 100: 属性名 Style 在 tvwNetwork 中是无效的。
Cheers!'列出LAN所有into Treeview
'I have used this code for many years!'a bas fileOption ExplicitPublic Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As Long
lpRemoteName As Long
lpComment As Long
lpProvider As Long
buf(1000) As Byte
End TypePublic Const RESOURCE_GLOBALNET As Long = 2
Public Const RESOURCETYPE_ANY As Long = 0
Public Const RESOURCEUSAGE_CONTAINER As Long = 2Public Const ERROR_NO_MORE_ITEMS As Long = 259
Public Const NO_ERROR As Long = 0Public Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000
Public Const FORMAT_MESSAGE_IGNORE_INSERTS As Long = &H200
Public Const DEFAULT_LANG_ID As Long = &H400Declare Function WNetOpenEnum Lib "mpr" Alias "WNetOpenEnumA" ( _
ByVal ResScope As Long, _
ByVal ResType As Long, _
ByVal ResUsage As Long, _
ByRef Res As NETRESOURCE, _
ByRef hEnum As Long) As LongDeclare Function WNetOpenEnumForRoot Lib "mpr" Alias "WNetOpenEnumA" ( _
ByVal ResScope As Long, _
ByVal ResType As Long, _
ByVal ResUsage As Long, _
ByVal pRes As Long, _
ByRef hEnum As Long) As LongDeclare Function WNetCloseEnum Lib "mpr" (ByVal hEnum As Long) As LongDeclare Function WNetEnumResource Lib "mpr" Alias "WNetEnumResourceA" ( _
ByVal hEnum As Long, _
ByRef EntryNum As Long, _
ByRef buf As NETRESOURCE, _
ByRef BufSize As Long) As LongDeclare Function lstrcpyFromPtr Lib "kernel32" Alias "lstrcpyA" (ByVal S As String, ByVal ptr As Long) As LongDeclare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" ( _
ByVal Flags As Long, _
ByVal pSource As Long, _
ByVal MessageID As Long, _
ByVal LangID As Long, _
ByVal Message As String, _
ByVal MessageSize As Long, _
ByVal pArgs As Long) As Long
Public Function PtrToStr(ptr As Long) As String Dim S As String * 1000
lstrcpyFromPtr S, ptr
PtrToStr = Left(S, InStr(S, vbNullChar) - 1)End Function
'A form with treeviewOption ExplicitPrivate Res(1000) As NETRESOURCE
Private ResCount As LongPrivate Const RESIDX_PREFIX As String = "RESIDX:"
Private Const INTERNAL_NODE_NAME As String = "internal node"
Private Sub AddNetResourceChilds(ParentNodeIdx As Long, ContainterIdx As Long) Dim lResult As Long
Dim ResIdx As Long
Dim EntryNum As Long
Dim BufSize As Long
Dim hEnum As Long If ContainterIdx = -1 Then
lResult = WNetOpenEnumForRoot(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, 0, hEnum)
Else
lResult = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, Res(ContainterIdx), hEnum)
End If
If lResult <> NO_ERROR Then
DispDllError
Exit Sub
End If Do '???????
ResIdx = AllocNewRes()
EntryNum = 1
BufSize = 1000
lResult = WNetEnumResource(hEnum, EntryNum, Res(ResIdx), BufSize)
If lResult = ERROR_NO_MORE_ITEMS Then Exit Do
If lResult <> NO_ERROR Then
DispDllError
Exit Do
End If AddNewNetResourceNode ParentNodeIdx, ResIdx
Loop WNetCloseEnum hEnumEnd Sub
' ?????????????
Private Function AddNewNetResourceNode(ParentIdx As Long, ResIdx As Long) As Long
Dim RemoteName As String
Dim NewNode As Node RemoteName = PtrToStr(Res(ResIdx).lpRemoteName)
If ParentIdx <> -1 Then
Set NewNode = tvwNetView.Nodes.Add(tvwNetView.Nodes(ParentIdx), tvwChild, RESIDX_PREFIX & ResIdx, RemoteName)
Else
Set NewNode = tvwNetView.Nodes.Add(, , RESIDX_PREFIX & ResIdx, RemoteName)
End If
If (Res(ResIdx).dwUsage And RESOURCEUSAGE_CONTAINER) <> 0 Then
tvwNetView.Nodes.Add NewNode.Index, tvwChild, , INTERNAL_NODE_NAME
End If
End FunctionPrivate Function AllocNewRes() As Long ResCount = ResCount + 1
AllocNewRes = ResCountEnd FunctionPrivate Sub DispDllError() Dim errno As Long
Dim buf As String * 1000
errno = Err.LastDllError
errno = FormatMessage( _
FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_IGNORE_INSERTS, _
0, errno, DEFAULT_LANG_ID, buf, 1000, 0)
MsgBox Left(buf, InStr(buf, vbNullChar) - 1), vbOKOnly Or vbExclamationEnd SubPrivate Sub Form_Load()
ResCount = 0
AddNetResourceChilds -1, -1End SubPrivate Sub tvwNetView_Expand(ByVal Node As MSComctlLib.Node)
Dim hEnum As Long
Dim ParentIdx As Long
Dim lResult As Long
Dim ResIdx As Long
Dim EntryNum As Long
Dim BufSize As Long If Node.Children > 0 Then
If Node.Child.Text = INTERNAL_NODE_NAME Then
tvwNetView.MousePointer = ccHourglass tvwNetView.Nodes.Remove Node.Child.Index
tvwNetView.Refresh
ParentIdx = CLng(Mid(Node.Key, Len(RESIDX_PREFIX) + 1))
AddNetResourceChilds Node.Index, CLng(Mid(Node.Key, Len(RESIDX_PREFIX) + 1))
tvwNetView.MousePointer = ccDefault
End If
End If
End Sub
Cheers!