Как получить доступ к "расшаренным" хардам компов, входящих в общую сеть - 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