⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 188.htm

📁 vb功能实例介绍。详细、很好的实例说明。
💻 HTM
字号:
<p>使用vb获取网上邻居里的计算机名</p>
<p></p>
<p>关键词:Visual Basic</p>
<p></p>
<p>Option Explicit</p>
<p>Private Const RESOURCE_CONNECTED As Long = &H1&</p>
<p>Private Const RESOURCE_GLOBALNET As Long = &H2&</p>
<p>Private Const RESOURCE_REMEMBERED As Long = &H3&</p>
<p></p>
<p>Private Const RESOURCEDISPLAYTYPE_DIRECTORY& = &H9</p>
<p>Private Const RESOURCEDISPLAYTYPE_DOMAIN& = &H1</p>
<p>Private Const RESOURCEDISPLAYTYPE_FILE& = &H4</p>
<p>Private Const RESOURCEDISPLAYTYPE_GENERIC& = &H0</p>
<p>Private Const RESOURCEDISPLAYTYPE_GROUP& = &H5</p>
<p>Private Const RESOURCEDISPLAYTYPE_NETWORK& = &H6</p>
<p>Private Const RESOURCEDISPLAYTYPE_ROOT& = &H7</p>
<p>Private Const RESOURCEDISPLAYTYPE_SERVER& = &H2</p>
<p>Private Const RESOURCEDISPLAYTYPE_SHARE& = &H3</p>
<p>Private Const RESOURCEDISPLAYTYPE_SHAREADMIN& = &H8</p>
<p>Private Const RESOURCETYPE_ANY As Long = &H0&</p>
<p>Private Const RESOURCETYPE_DISK As Long = &H1&</p>
<p>Private Const RESOURCETYPE_PRINT As Long = &H2&</p>
<p>Private Const RESOURCETYPE_UNKNOWN As Long = &HFFFF&</p>
<p>Private Const RESOURCEUSAGE_ALL As Long = &H0&</p>
<p>Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&</p>
<p>Private Const RESOURCEUSAGE_CONTAINER As Long = &H2&</p>
<p>Private Const RESOURCEUSAGE_RESERVED As Long = &H80000000</p>
<p>Private Const NO_ERROR = 0</p>
<p>Private Const ERROR_MORE_DATA = 234 注释:L    // dderror</p>
<p>Private Const RESOURCE_ENUM_ALL As Long = &HFFFF</p>
<p>Private Type NETRESOURCE</p>
<p>    dwScope As Long</p>
<p>    dwType As Long</p>
<p>    dwDisplayType As Long</p>
<p>    dwUsage As Long</p>
<p>    pLocalName As Long</p>
<p>    pRemoteName As Long</p>
<p>    pComment As Long</p>
<p>    pProvider As Long</p>
<p>End Type</p>
<p>Private Type NETRESOURCE_REAL</p>
<p>    dwScope As Long</p>
<p>    dwType As Long</p>
<p>    dwDisplayType As Long</p>
<p>    dwUsage As Long</p>
<p>    sLocalName As String</p>
<p>    sRemoteName As String</p>
<p>    sComment As String</p>
<p>    sProvider As String</p>
<p>End Type</p>
<p>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</p>
<p>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</p>
<p>Private Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long</p>
<p>Private Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long</p>
<p>Private Declare Function VarPtrAny Lib "vb40032.dll" Alias "VarPtr" (lpObject As Any) As Long</p>
<p>Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (lpTo As Any, lpFrom As Any, ByVal lLen As Long)</p>
<p>Private Declare Sub CopyMemByPtr Lib "kernel32" Alias "RtlMoveMemory" (ByVal lpTo As Long, ByVal lpFrom As Long, ByVal lLen As Long)</p>
<p>Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Any) As Long</p>
<p>Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long</p>
<p></p>
<p>Sub main()</p>
<p>    Const MAX_RESOURCES = 256</p>
<p>    Const NOT_A_CONTAINER = -1</p>
<p></p>
<p>    Dim bFirstTime As Boolean</p>
<p>    Dim lReturn As Long</p>
<p>    Dim hEnum As Long</p>
<p>    Dim lCount As Long</p>
<p>    Dim lMin As Long</p>
<p>    Dim lLength As Long</p>
<p>    Dim l As Long</p>
<p>    Dim lBufferSize As Long</p>
<p>    Dim lLastIndex As Long</p>
<p>    Dim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE</p>
<p>    Dim uNet() As NETRESOURCE_REAL</p>
<p>    bFirstTime = True</p>
<p>    Do</p>
<p>        If bFirstTime Then</p>
<p>            lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, ByVal 0&, hEnum)</p>
<p>            bFirstTime = False</p>
<p>        Else</p>
<p>            If uNet(lLastIndex).dwUsage And RESOURCEUSAGE_CONTAINER Then</p>
<p>                lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, uNet(lLastIndex), hEnum)</p>
<p>            Else</p>
<p>                lReturn = NOT_A_CONTAINER</p>
<p>                hEnum = 0</p>
<p>            End If</p>
<p>            lLastIndex = lLastIndex + 1</p>
<p>        End If</p>
<p>        If lReturn = NO_ERROR Then</p>
<p>            lCount = RESOURCE_ENUM_ALL</p>
<p>            Do</p>
<p>                lBufferSize = UBound(uNetApi) * Len(uNetApi(0)) / 2</p>
<p>                lReturn = WNetEnumResource(hEnum, lCount, uNetApi(0), lBufferSize)</p>
<p>                If lCount > 0 Then</p>
<p>                    ReDim Preserve uNet(0 To lMin + lCount - 1) As NETRESOURCE_REAL</p>
<p>                    For l = 0 To lCount - 1</p>
<p>                        注释:Each Resource will appear here as uNet(i)</p>
<p>                        uNet(lMin + l).dwScope = uNetApi(l).dwScope</p>
<p>                        uNet(lMin + l).dwType = uNetApi(l).dwType</p>
<p>                        uNet(lMin + l).dwDisplayType = uNetApi(l).dwDisplayType</p>
<p>                        uNet(lMin + l).dwUsage = uNetApi(l).dwUsage</p>
<p>                        If uNetApi(l).pLocalName Then</p>
<p>                            lLength = lstrlen(uNetApi(l).pLocalName)</p>
<p>                            uNet(lMin + l).sLocalName = Space$(lLength)</p>
<p>                            CopyMem ByVal uNet(lMin + l).sLocalName, ByVal uNetApi(l).pLocalName, lLength</p>
<p>                        End If</p>
<p>                        If uNetApi(l).pRemoteName Then</p>
<p>                            lLength = lstrlen(uNetApi(l).pRemoteName)</p>
<p>                            uNet(lMin + l).sRemoteName = Space$(lLength)</p>
<p>                            CopyMem ByVal uNet(lMin + l).sRemoteName, ByVal uNetApi(l).pRemoteName, lLength</p>
<p>                        End If</p>
<p>                        If uNetApi(l).pComment Then</p>
<p>                            lLength = lstrlen(uNetApi(l).pComment)</p>
<p>                            uNet(lMin + l).sComment = Space$(lLength)</p>
<p>                            CopyMem ByVal uNet(lMin + l).sComment, ByVal uNetApi(l).pComment, lLength</p>
<p>                        End If</p>
<p>                        If uNetApi(l).pProvider Then</p>
<p>                            lLength = lstrlen(uNetApi(l).pProvider)</p>
<p>                            uNet(lMin + l).sProvider = Space$(lLength)</p>
<p>                            CopyMem ByVal uNet(lMin + l).sProvider, ByVal uNetApi(l).pProvider, lLength</p>
<p>                        End If</p>
<p>                    Next l</p>
<p>                End If</p>
<p>                lMin = lMin + lCount</p>
<p>            Loop While lReturn = ERROR_MORE_DATA</p>
<p>        End If</p>
<p>        If hEnum Then</p>
<p>            l = WNetCloseEnum(hEnum)</p>
<p>        End If</p>
<p>    Loop While lLastIndex < lMin</p>
<p>    If UBound(uNet) > 0 Then</p>
<p>        For l = 0 To UBound(uNet)</p>
<p>            Select Case uNet(l).dwDisplayType</p>
<p>                Case RESOURCEDISPLAYTYPE_DIRECTORY&</p>
<p>                    Debug.Print "Directory...",</p>
<p>                Case RESOURCEDISPLAYTYPE_DOMAIN</p>
<p>                    Debug.Print "Domain...",</p>
<p>                Case RESOURCEDISPLAYTYPE_FILE</p>
<p>                    Debug.Print "File...",</p>
<p>                Case RESOURCEDISPLAYTYPE_GENERIC</p>
<p>                    Debug.Print "Generic...",</p>
<p>                Case RESOURCEDISPLAYTYPE_GROUP</p>
<p>                    Debug.Print "Group...",</p>
<p>                Case RESOURCEDISPLAYTYPE_NETWORK&</p>
<p>                    Debug.Print "Network...",</p>
<p>                Case RESOURCEDISPLAYTYPE_ROOT&</p>
<p>                    Debug.Print "Root...",</p>
<p>                Case RESOURCEDISPLAYTYPE_SERVER</p>
<p>                    Debug.Print "Server...",</p>
<p>                Case RESOURCEDISPLAYTYPE_SHARE</p>
<p>                    Debug.Print "Share...",</p>
<p>                Case RESOURCEDISPLAYTYPE_SHAREADMIN&</p>
<p>                    Debug.Print "ShareAdmin...",</p>
<p>            End Select</p>
<p>            Debug.Print uNet(l).sRemoteName, uNet(l).sComment</p>
<p>        Next l</p>
<p>    End If</p>
<p>End Sub</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -