s

解决方案 »

  1.   

    能给我发一份吗?
    [email protected]
      

  2.   

    能给我发一份吗?
    [email protected]
      

  3.   

    Public Const RESOURCE_GLOBALNET As Long = &H2&
    Public Const RESOURCEDISPLAYTYPE_DIRECTORY& = &H9
    Public Const RESOURCEDISPLAYTYPE_NETWORK& = &H6
    Public Const RESOURCEDISPLAYTYPE_ROOT& = &H7
    Public Const RESOURCEDISPLAYTYPE_SHAREADMIN& = &H8
    Public Const RESOURCETYPE_ANY As Long = &H0&
    Public Const RESOURCEUSAGE_ALL As Long = &H0&
    Public Const RESOURCEUSAGE_CONTAINER As Long = &H2&
    Public Const RESOURCEDISPLAYTYPE_SERVER& = &H2
    Public Const RESOURCEDISPLAYTYPE_SHARE& = &H3
    Public Const NO_ERROR = 0
    Public Const ERROR_MORE_DATA = 234 'L    // dderror
    Public Const RESOURCE_ENUM_ALL As Long = 100 '&HFFFF
    Public 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 TypePublic 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 TypePublic 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
    Public Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long
    Public Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long
    Public Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (lpTo As Any, lpFrom As Any, ByVal lLen As Long)
    Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long    Const MAX_RESOURCES = 256
        Const NOT_A_CONTAINER = -1    Dim bFirstTime As Boolean
        Dim lReturn As Long
        Dim hEnum As Long
        Dim lCount As Long
        Dim lMin As Long
        Dim lLength As Long
        Dim l As Long
        Dim lBufferSize As Long
        Dim lLastIndex As Long
        Dim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE
        Dim uNet() As NETRESOURCE_REAL
        Dim temp As Long
        
        
        'clear
        lstShare.Clear
        txtMessage.Text = ""
        txtSign.Text = ""
        cobSendTo.Clear
        
        'create tray
        Call CreateTray
        
        On Error GoTo ErrHandle1
        bFirstTime = True
        Do
            If bFirstTime Then
                lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, ByVal 0&, hEnum)
                bFirstTime = False
            Else
                If uNet(lLastIndex).dwUsage And RESOURCEUSAGE_CONTAINER Then
                    lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, uNet(lLastIndex), hEnum)
                Else
                    lReturn = NOT_A_CONTAINER
                    hEnum = 0
                End If
                lLastIndex = lLastIndex + 1
            End If
            If lReturn = NO_ERROR Then
                lCount = RESOURCE_ENUM_ALL
                Do
                    lBufferSize = UBound(uNetApi) * Len(uNetApi(0)) / 2
                    lReturn = WNetEnumResource(hEnum, lCount, uNetApi(0), lBufferSize)
                    If lCount > 0 Then
                        ReDim Preserve uNet(0 To lMin + lCount - 1) As NETRESOURCE_REAL
                        For l = 0 To lCount - 1
                            'Each Resource will appear here as uNet(i)
                            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
                                lLength = lstrlen(uNetApi(l).pLocalName)
                                uNet(lMin + l).sLocalName = Space$(lLength)
                                CopyMem ByVal uNet(lMin + l).sLocalName, ByVal uNetApi(l).pLocalName, lLength
                            End If
                            If uNetApi(l).pRemoteName Then
                                lLength = lstrlen(uNetApi(l).pRemoteName)
                                uNet(lMin + l).sRemoteName = Space$(lLength)
                                CopyMem ByVal uNet(lMin + l).sRemoteName, ByVal uNetApi(l).pRemoteName, lLength
                            End If
                            If uNetApi(l).pComment Then
                                lLength = lstrlen(uNetApi(l).pComment)
                                uNet(lMin + l).sComment = Space$(lLength)
                                CopyMem ByVal uNet(lMin + l).sComment, ByVal uNetApi(l).pComment, lLength
                            End If
                            If uNetApi(l).pProvider Then
                                lLength = lstrlen(uNetApi(l).pProvider)
                                uNet(lMin + l).sProvider = Space$(lLength)
                                CopyMem ByVal uNet(lMin + l).sProvider, ByVal uNetApi(l).pProvider, lLength
                            End If
                        Next l
                    End If
                    lMin = lMin + lCount
                Loop While lReturn = ERROR_MORE_DATA
            End If
            If hEnum Then
                l = WNetCloseEnum(hEnum)
            End If
        Loop While lLastIndex < lMin
        
        If UBound(uNet) > 0 Then
            For l = 0 To UBound(uNet)
                Select Case uNet(l).dwDisplayType
                    Case RESOURCEDISPLAYTYPE_DIRECTORY&
                        Debug.Print "Directory...",
                    Case RESOURCEDISPLAYTYPE_DOMAIN
                        'Debug.Print "Domain...",
                    Case RESOURCEDISPLAYTYPE_FILE
                        Debug.Print "File...",
                    Case RESOURCEDISPLAYTYPE_GENERIC
                        Debug.Print "Generic...",
                    Case RESOURCEDISPLAYTYPE_GROUP
                        Debug.Print "Group...",
                    Case RESOURCEDISPLAYTYPE_NETWORK&
                        Debug.Print "Network...",
                    Case RESOURCEDISPLAYTYPE_ROOT&
                        Debug.Print "Root...",
                    Case RESOURCEDISPLAYTYPE_SERVER
                        Debug.Print "Server Name "
                        cobSendTo.AddItem uNet(l).sRemoteName
                    Case RESOURCEDISPLAYTYPE_SHARE
                        Debug.Print "Share Files"
                    Case RESOURCEDISPLAYTYPE_SHAREADMIN&
                        Debug.Print "ShareAdmin...",
                    Case Else
                        
                End Select
                Debug.Print uNet(l).sRemoteName, uNet(l).sComment
                
            Next l
        End If
      

  4.   

    to: holydiablo(鱼头) 
    谢谢啦
    [email protected]
      

  5.   

    也给我一个例子可以吗?
    [email protected]
      

  6.   


    这里有:
    http://www.csdn.net/cnshare/soft/16/16015.shtm