Как программно расшарить директорию?
От: Maniak2k  
Дата: 26.03.04 14:02
Оценка:
Вопрос в заголовке.
Re: Как программно расшарить директорию?
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.04 14:11
Оценка: +1
Здравствуйте, Maniak2k, Вы писали:

M>Вопрос в заголовке.


У меня встречный вопрос. Ты читал вот этот документ.

Не сочти за наезд, но твой вопрос не содержит смысла. Понятие "расшарить директорию" не определено.

Уточни, что ты имешь в виду под этим понятием. И помни, что правильный вопрос — это половина ответа.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как программно расшарить директорию?
От: Maniak2k  
Дата: 26.03.04 14:25
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Maniak2k, Вы писали:


M>>Вопрос в заголовке.


VD>У меня встречный вопрос. Ты читал вот этот документ.


читал

VD>Не сочти за наезд, но твой вопрос не содержит смысла. Понятие "расшарить директорию" не определено.


VD>Уточни, что ты имешь в виду под этим понятием. И помни, что правильный вопрос — это половина ответа.


в смысле открыть директорию для сетевого доступа. Я думал, что большинство программистов и пользователей по понятием "расшарить директорию" понимают именно это.
Re: Как программно расшарить директорию?
От: Alkash  
Дата: 29.03.04 09:49
Оценка:
<StructLayout(LayoutKind.Sequential)> _
Private Structure SHARE_INFO_2
Public NetName As IntPtr
Public type As ShareType
Public remark As IntPtr
Public permissions As Integer
Public max_uses As Integer
Public current_uses As Integer
Public path As IntPtr
Public passwd As IntPtr
End Structure

<Flags()> _
Private Enum ShareType
Disk = 0
Printer = 1
Device = 2
IPC = 3
Special = -2147483648 ' // 0x80000000,
End Enum


Private Declare Auto Function NetShareAdd Lib "netapi32.dll" (ByVal servername As String, ByVal level As Integer, ByVal buf As IntPtr, ByRef parm_err As Integer) As Integer

private sub CreateShare()
Dim si As SHARE_INFO_2
Dim i As Integer
Dim res As Integer
If Not System.IO.Directory.Exists([Имя папки]) Then
System.IO.Directory.CreateDirectory([Имя папки])
End If
si.NetName = Marshal.StringToHGlobalUni([Имя в сети])
si.type = ShareType.Disk
si.remark = Marshal.StringToHGlobalUni([Описание])
si.permissions = 127
si.max_uses = -1
si.path = Marshal.StringToHGlobalUni([Имя папки])
si.passwd = IntPtr.Zero
Dim b As IntPtr
b = Marshal.AllocHGlobal(Marshal.SizeOf(si))
Marshal.StructureToPtr(si, b, True)
res = NetShareAdd(Nothing, 2, b, i)
Marshal.FreeHGlobal(si.NetName)
Marshal.FreeHGlobal(si.remark)
Marshal.FreeHGlobal(si.path)
Marshal.FreeHGlobal(b)

end sub
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.