Как получить доступ к "расшаренным" хардам компов, входящих в общую сеть - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Задача такая: пишется простенькая программа для автоматизированного обмена (VB6) информацией между офисными ПК, входящими в общюю сеть. Казалось-бы все просто, пишем: OPEN "192.168.1.3/имя_папки/" FOR INPUT AS #1 того ПК, к которому надо получить доступ (папка, естественно на том ПК уже "расшарена" для общего доступа). Но, ошибка, - неверно указан путь. Что самое интересное, раньше такая комбинация работала! Может я что-то забыл? В общем, задача простая, - получить доступ к "расшаренным" хардам компов в общей сети (их IP уже известны) через ВБ-шную программу. Помогите, плиззз, кто знает! Заранее спасибо!

Решение задачи: «Как получить доступ к "расшаренным" хардам компов, входящих в общую сеть»

textual
Листинг программы
Option Explicit
 
Private Sub Form_Load()
    Dim NetShare        As String
    Dim file            As String
    Dim sDriveLetter    As String
    
    NetShare = "\\192.168.12.6\общие документы"
    file = "test.txt"
 
    sDriveLetter = MountShare(NetShare)
    If sDriveLetter <> vbNullString Then
        MsgBox ReadFile(sDriveLetter & ":\" & file)
        UnMountShare sDriveLetter
    End If
End Sub
 
' Монтирует сетевое уст-во. Возвращает букву диска в случае успеха
Function MountShare(Share As String) As String
    Dim FSO, oNetwork, oDrive, sDrvMap, sDriveLetter
 
    sDrvMap = "DEFGHIJKLMNOPQRSTUVWX"   ' поиск свободной буквы диска
    Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each oDrive In FSO.Drives
        sDrvMap = Replace(sDrvMap, oDrive.DriveLetter, "", 1, 1)
    Next
    sDriveLetter = Left(sDrvMap, 1)
 
    If sDriveLetter <> vbNullString Then
        Set oNetwork = CreateObject("Wscript.Network")
        On Error Resume Next
        oNetwork.MapNetworkDrive sDriveLetter & ":", Share
        If Err = 0 Then MountShare = sDriveLetter Else Debug.Print Err & " " & Err.Description
    End If
End Function
 
' Возвращает ноль в случае успеха
Function UnMountShare(sDriveLetter As String, Optional Force As Boolean) As Long
    Dim oNetwork
    
    Set oNetwork = CreateObject("Wscript.Network")
    On Error Resume Next
    oNetwork.RemoveNetworkDrive sDriveLetter & ":", Force
    UnMountShare = Err.Number
End Function
 
Function ReadFile(file As String) As String
    On Error Resume Next
    Dim ff          As Integer
    Dim FileSize    As Long
    
    ff = FreeFile()
    FileSize = FileLen(file)
    If FileSize Then
        Open file For Binary Access Read As #ff
            ReadFile = Space(FileSize)
            Get #ff, , ReadFile
        Close #ff
    End If
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5
Похожие ответы