Cómo conectarse a una unidad de red mediante WNetAddConnection

Seleccione idioma Seleccione idioma
Id. de artículo: 141757 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Versión 3.1 de Windows proporciona una nueva llamada de API WNetAddConnection, que redirige un dispositivo local a un recurso compartido o servidor de red.

WNetAddConnection requiere el nombre del dispositivo local, el nombre del recurso de red y la contraseña necesaria para utilizar ese recurso.

Este artículo explica en detalle los argumentos y mensajes de error posibles para la llamada de función de Windows versión 3.1 WNetAddConnection.

Más información

Utilice WNetAddConnection dentro de una aplicación de Visual Basic, declare la función WNetAddConnection en la sección Declaraciones generales de la ventana código. (En la versión 1.0 de Visual Basic también puede colocar la declaración en el módulo global.) Declare la función manera introducir toda la instrucción Declare en una sola línea:
   Public Declare Function WnetAddConnection% Lib "user"
      (ByVal lpszNetPath As Any,
      ByVal lpszPassword As Any,
      ByVal lpszLocalName As Any)
				

Éstas son las definiciones de parámetros formales:
   Formal Parameter   Definition
   -----------------------------------------------------------------------
   lpszNetPath        Points to a null-terminated string specifying the
                      shared device or remote server.

   lpszPassword       Points to a null-terminated string specifying the
                      network password for the given device or server.

   lpszLocalName      Points to a null-terminated string specifying the
                      local drive or device to be redirected. All
                      lpszLocalName strings (such as LPT1) are case
                      independent. Only the drive names A through Z
                      and device names LPT1 through LPT3 are used.
				

A continuación son los posibles valores devueltos como se define en la página 990 de referencia del programador de Microsoft Windows versión 3.1:
   Value                  (Hex Value)  Meaning
   -----------------------------------------------------------------------
   WN_SUCCESS             (&H0)        Function was successful.
   WN_NOT_SUPPORTED       (&H1)        Function was not supported.
   WN_OUT_OF_MEMORY       (&HB)        System was out of memory.
   WN_NET_ERROR           (&H2)        An error occurred on the network.
   WN_BAD_POINTER         (&H4)        Pointer was invalid.
   WN_BAD_NETNAME         (&H32)       Network resource name was invalid.
   WN_BAD_LOCALNAME       (&H33)       Local device name was invalid.
   WN_BAD_PASSWORD        (&H6)        Password was invalid.
   WN_ACCESS_DENIED       (&H7)        A security violation occurred.
   WN_ALREADY_CONNECTED   (&H34)       Local device was already connected
                                       to a remote resource.
				

El siguiente es un ejemplo de cómo redirigir un dispositivo local a un recurso de red:
  1. Inicie Visual Basic (VB.EXE). Se creará Form1 de manera predeterminada.
  2. Cree los siguientes controles con las propiedades indicadas en Form1:
       Default Name   Caption             CtlName
       -------------------------------------------
       Text1          (Not applicable)    NetPath
       Text2          (Not applicable)    Password
       Command1       &Connect            Connect
       Drive1         (Not applicable)    Drive1
    
    						
  3. Agregue el código siguiente a la sección general de la declaración de Form1. Escriba la instrucción Declare como una sola línea:
       Private Declare Function WnetAddConnection Lib "user"
         (ByVal lpszNetPath as String,
          ByVal lpszPassword as String,
          ByVal lpszLocalName as String) as Integer
       Const WN_Success = &H0
       Const WN_Not_Supported = &H1
       Const WN_Net_Error = &H2
       Const WN_Bad_Pointer = &H4
       Const WN_Bad_NetName = &H32
       Const WN_Bad_Password = &H6
       Const WN_Bad_Localname = &H33
       Const WN_Access_Denied = &H7
       Const WN_Out_Of_Memory = &HB
       Const WN_Already_Connected = &H34
    
    						
    si está utilizando Visual Basic versión 1.0, agregue lo siguiente a las declaraciones generales también:
       Const True = -1
       Const False = 0
    
    						
  4. Agregue el código siguiente al procedimiento Connect_Click:
       Private Sub Connect_Click ()
    
          ServerText$ = UCase$(NetPath.Text) + Chr$(0) ' Network resource name
          PasswordText$ = Password.Text + Chr$(0) ' Password for the resource
          driveletter$ = "N:" + Chr$(0) ' Substitute your own drive letter
    
          ' Enter the following two lines as one, single line:
          Succeed% =
             WnetAddConnection(ServerText$, PasswordText$, driveletter$)
    
          If IsSuccess(Succeed%, msg$) = True Then ' Call Function to parse
                                                   ' potential error messages.
             Drive1.Refresh
             NetPath.Text = "" ' Reset the contents following connection
          Else
             MsgBox msg$
          End If
    
       End Sub
    
    						
  5. Crear un procedimiento Sub en la sección (declaraciones) de la ventana código y agregue el código siguiente:
       Private Function IsSuccess% (ReturnCode%, Msg$)
    
       If ReturnCode% = WN_Success Then
          IsSuccess% = True
       Else
          IsSuccess% = False
          Select Case ReturnCode%
    
             Case WN_Success:
                Drive1.Refresh
             Case WN_Not_Supported:
                msg$ = "Function is not supported."
             Case Wn_Out_Of_Memory:
                msg$ = "Out of Memory."
             Case WN_Net_Error:
                msg$ = "An error occurred on the network."
             Case WN_Bad_Pointer:
                msg$ = "The Pointer was Invalid."
             Case WN_Bad_NetName:
                msg$ = "Invalid Network Resource Name."
             Case WN_Bad_Password:
                msg$ = "The Password was Invalid."
             Case WN_Bad_Localname:
                msg$ = "The local device name was invalid."
             Case WN_Access_Denied:
                msg$ = "A security violation occurred."
             Case WN_Already_Connected:
                msg$ = "The local device was connected to a remote resource."
             Case Else:
                msg$ = "Unrecognized Error " + Str$(ReturnCode%) + "."
    
          End Select
       End If
    
       End Function
    
    						
  6. Ejecute el programa. Escriba el nombre de un recurso de red en el cuadro de edición y presione el botón Conectar. El cuadro unidad se actualizará con el nuevo recurso si la llamada se realizó correctamente.

Referencias

Starter Kit de MSDN/VB, (incluido con las versiones Professional y Enterprise de Visual Basic 4.0), documentación, SDK, "Windows 3.1 SDK," referencia de programadores volumen 2 y el archivo WIN31API.HLP (que también se incluye con Microsoft Visual Basic versión 2.0, 3.0 Professional versión).

Propiedades

Id. de artículo: 141757 - Última revisión: miércoles, 08 de enero de 2003 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
Palabras clave: 
kbmt kbnetwork KB141757 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 141757
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com