<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49788&amp;view=findpost&amp;p=327878</guid>
        <pubDate>Tue, 30 Mar 2004 16:20:39 +0000</pubDate>
        <title>Как программно подключить/отключить сете</title>
        <link>https://forum.sources.ru/index.php?showtopic=49788&amp;view=findpost&amp;p=327878</link>
        <description><![CDATA[Dufa: Private Declare Function WNetAddConnection2 Lib &quot;mpr.dll&quot; Alias &quot;WNetAddConnection2A&quot; (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUsername As String, ByVal dwFlags As Long) As Long<br><br>Private Declare Function WNetCancelConnection2 Lib &quot;mpr.dll&quot; Alias &quot;WNetCancelConnection2A&quot; (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long<br><br>Private ErrorNum As Long, ErrorMsg As String, rc As Long, RemoteName As String<br><br>Private Const ERROR_BAD_DEV_TYPE = 66&amp;<br><br>Private Const ERROR_ALREADY_ASSIGNED = 85&amp;<br><br>Private Const ERROR_ACCESS_DENIED = 5&amp;<br><br>Private Const ERROR_BAD_NET_NAME = 67&amp;<br><br>Private Const ERROR_BAD_PROFILE = 1206&amp;<br><br>Private Const ERROR_BAD_PROVIDER = 1204&amp;<br><br>Private Const ERROR_BUSY = 170&amp;<br><br>Private Const ERROR_CANCEL_VIOLATION = 173&amp;<br><br>Private Const ERROR_CANNOT_OPEN_PROFILE = 1205&amp;<br><br>Private Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&amp;<br><br>Private Const ERROR_EXTENDED_ERROR = 1208&amp;<br><br>Private Const ERROR_INVALID_PASSWORD = 86&amp;<br><br>Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&amp;<br><br>Private Const ERROR_NO_NETWORK = 1222&amp;<br><br>Private Const ERROR_NO_CONNECTION = 8<br><br>Private Const ERROR_NO_DISCONNECT = 9<br><br>Private Const ERROR_DEVICE_IN_USE = 2404&amp;<br><br>Private Const ERROR_NOT_CONNECTED = 2250&amp;<br><br>Private Const ERROR_OPEN_FILES = 2401&amp;<br><br>Private Const ERROR_MORE_DATA = 234<br><br>Private Const CONNECT_UPDATE_PROFILE = &amp;H1<br><br>Private Const RESOURCETYPE_DISK = &amp;H1<br><br> <br><br>Private Type NETRESOURCE<br><br>dwScope As Long<br><br>dwType As Long<br><br>dwDisplayType As Long<br><br>dwUsage As Long<br><br>lpLocalName As String<br><br>lpRemoteName As String<br><br>lpComment As String<br><br>lpProvider As String<br><br>End Type<br><br> <br><br>Private lpNetResourse As NETRESOURCE<br><br> <br><br>Private Sub Connect(ByVal HostName As String, ByVal RemoteName As String, ByVal Username As String, ByVal Password As String)<br><br>Dim lpUsername As String<br><br>Dim lpPassword As String<br><br>On Error GoTo Err_Connect<br><br>ErrorNum = 0<br><br>ErrorMsg = &quot;&quot;<br><br>lpNetResourse.dwType = RESOURCETYPE_DISK<br><br>lpNetResourse.lpLocalName = RemoteName &amp; Chr(0)<br><br>&#39;Drive Letter to use<br><br>lpNetResourse.lpRemoteName = &quot;&#092;&#092;&quot; &amp; HostName &amp; Chr(0)<br><br>&#39;Network Path to share<br><br>lpNetResourse.lpProvider = Chr(0)<br><br>lpPassword = Password &amp; Chr(0)<br><br>&#39;password on share pass &quot;&quot; if none<br><br>lpUsername = Username &amp; Chr(0)<br><br>&#39;username to connect as if applicable<br><br>rc = WNetAddConnection2(lpNetResourse, lpPassword, lpUsername, CONNECT_UPDATE_PROFILE)<br><br>If rc &lt;&gt; 0 Then GoTo Err_Connect<br><br>Exit Sub<br><br>Err_Connect:<br><br>ErrorNum = rc<br><br>ErrorMsg = WnetError(rc)<br><br>End Sub<br><br> <br><br>Private Sub DisConnect(ByVal Name As String, ByVal ForceOff As Boolean)<br><br>On Error GoTo Err_DisConnect<br><br>ErrorNum = 0<br><br>ErrorMsg = &quot;&quot;<br><br>rc = WNetCancelConnection2(Name &amp; Chr(0), CONNECT_UPDATE_PROFILE, ForceOff)<br><br>If rc &lt;&gt; 0 Then GoTo Err_DisConnect<br><br>Exit Sub<br><br>Err_DisConnect:<br><br>ErrorNum = rc<br><br>ErrorMsg = WnetError(rc)<br><br>End Sub<br><br> <br><br>Private Function WnetError(Errcode As Long) As String<br><br>Select Case Errcode<br><br>Case ERROR_BAD_DEV_TYPE<br><br>WnetError = &quot;Bad device.&quot;<br><br>Case ERROR_ALREADY_ASSIGNED<br><br>WnetError = &quot;Already Assigned.&quot;<br><br>Case ERROR_ACCESS_DENIED<br><br>WnetError = &quot;Access Denied.&quot;<br><br>Case ERROR_BAD_NET_NAME<br><br>WnetError = &quot;Bad net name&quot;<br><br>Case ERROR_BAD_PROFILE<br><br>WnetError = &quot;Bad Profile&quot;<br><br>Case ERROR_BAD_PROVIDER<br><br>WnetError = &quot;Bad Provider&quot;<br><br>Case ERROR_BUSY<br><br>WnetError = &quot;Busy&quot;<br><br>Case ERROR_CANCEL_VIOLATION<br><br>WnetError = &quot;Cancel Violation&quot;<br><br>Case ERROR_CANNOT_OPEN_PROFILE<br><br>WnetError = &quot;Cannot Open Profile&quot;<br><br>Case ERROR_DEVICE_ALREADY_REMEMBERED<br><br>WnetError = &quot;Device already remembered&quot;<br><br>Case ERROR_EXTENDED_ERROR<br><br>WnetError = &quot;Device already remembered&quot;<br><br>Case ERROR_INVALID_PASSWORD<br><br>WnetError = &quot;Invalid Password&quot;<br><br>Case ERROR_NO_NET_OR_BAD_PATH<br><br>WnetError = &quot;Could not find the specified device&quot;<br><br>Case ERROR_NO_NETWORK<br><br>WnetError = &quot;No Network Present&quot;<br><br>Case ERROR_DEVICE_IN_USE<br><br>WnetError = &quot;Connection Currently in use &quot;<br><br>Case ERROR_NOT_CONNECTED<br><br>WnetError = &quot;No Connection Present&quot;<br><br>Case ERROR_OPEN_FILES<br><br>WnetError = &quot;Files open and the force parameter is false&quot;<br><br>Case ERROR_MORE_DATA<br><br>WnetError = &quot;Buffer to small to hold network name, make lpnLength bigger&quot;<br><br>Case Else:<br><br>WnetError = &quot;Unrecognized Error &quot; + Str(Errcode) + &quot;.&quot;<br><br>End Select<br><br>End Function<br><br>‘ подключить<br><br>Call Connect(&quot;games&#092;&quot;, &quot;K:&quot;, &quot;Andrey&quot;, &quot;Password&quot;)<br><br>If (rc &lt;&gt; 0) And (rc &lt;&gt; 85) Then MsgBox ErrorMsg<br><br>‘отключить<br><br>Call DisConnect(&quot;K:&quot;, True)<br><br>If (rc &lt;&gt; 0) And (rc &lt;&gt; 85) Then MsgBox ErrorMsg]]></description>
        <author>Dufa</author>
        <category>Работа с аппаратурой</category>
      </item>
	
      </channel>
      </rss>
	