Foros del Web » Programación para mayores de 30 ;) » Programación General »

Comando interno para red

Estas en el tema de Comando interno para red en el foro de Programación General en Foros del Web. Trabajo con la siguiente red: * servidor con win2000server * los clientes win 2000 prof (solo se puede entrar con un nivel de cliente o ...
  #1 (permalink)  
Antiguo 28/07/2004, 08:06
 
Fecha de Ingreso: julio-2003
Mensajes: 45
Antigüedad: 20 años, 8 meses
Puntos: 0
Comando interno para red

Trabajo con la siguiente red:
* servidor con win2000server
* los clientes win 2000 prof
(solo se puede entrar con un nivel de cliente o como administrador)

Para poder instalar un programa tengo que entrar como administrador local.

La Base de datos está en una carpeta compartida de otro servidor \\nombre_servidor\BD
Para ello tengo que crear una unidad de RED a la carpeta donde está la BD "conectar a una unidad de red".
Pero cuando entro con el nivel de cliente, la unidad de red ya no está configurada para él,
es decir, ya no existe la unidad de red que me creé como Administrador.

El programa está hecho en Visual Basic 6.0 y en la ruta de la BD le tengo puesto:
R:\\nombre_BD.mdb

¿Cómo puedo hacerlo para poder instalar el programa con el usuario de cliente o crear la unidad "R"
para que se conecte a esa unidad de red?.

¿Puede ser que haya algún comando interno para crear esa unidad de red desde el mismo programa?

Un abrazo.
  #2 (permalink)  
Antiguo 28/07/2004, 08:50
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 5 meses
Puntos: 0
no entiendo porque necesitas asignarle una letra a la unidad de red, porque directamente en la ruta del programa no ponés \\nombre_servidor\BD

saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #3 (permalink)  
Antiguo 29/07/2004, 04:03
 
Fecha de Ingreso: julio-2003
Mensajes: 45
Antigüedad: 20 años, 8 meses
Puntos: 0
Eso fue lo primero que hice, pero daba error "No encuentra el nombre ...", por la razón que sea no pillaba la ruta de la BD y por eso me tuve que inventar lo de crear una unidad de red con la dirección de la BD. Parece que así no da problemas.
  #4 (permalink)  
Antiguo 29/07/2004, 06:44
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, podés usar las siguientes API:

Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long

Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

Te paso un ejemplo de las dos funciones

WNetAddConnection
Código:
Private Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
Private Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long
Const WN_SUCCESS = 0 ' The function was successful.
Const WN_NET_ERROR = 2 ' An error occurred on the network.
Const WN_BAD_PASSWORD = 6 ' The password was invalid.
Function AddConnection(MyShareName As String, MyPWD As String, UseLetter As String) As Integer
    On Local Error GoTo AddConnection_Err
    AddConnection = WNetAddConnection(MyShareName, MyPWD, UseLetter)
AddConnection_End:
    Exit Function
AddConnection_Err:
    AddConnection = Err
    MsgBox Error$
    Resume AddConnection_End
End Function
Function CancelConnection(DriveLetter As String, Force As Integer) As Integer
    On Local Error GoTo CancelConnection_Err
    CancelConnection = WNetCancelConnection(DriveLetter, Force)
CancelConnection_End:
    Exit Function
CancelConnection_Err:
    CancelConnection = Err
    MsgBox Error$
    Resume CancelConnection_End
End Function
Private Sub Form_Load()
    'to add a connection call by:
    variable = AddConnection(<SharePath>, <Password>, <DriveLetter>)
    'To cancel a connection type:
    varible = CancelConnection(<SharePath, <Force>)
End Sub
WNetAddConnection2

Código:
'Create a form with:
' • Two commands (Command1, Command2)
' • One Drive (Drive1)
' • One label (Label1)
Const RESOURCETYPE_DISK = &H1
Private Type NETRESOURCE
  dwScope As Long
  dwType As Long
  dwDisplayType As Long
  dwUsage As Long
  lpLocalName As String
  lpRemoteName As String
  lpComment As String
  lpProvider As String
End Type
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
Private Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
Dim theNetResource As NETRESOURCE
Dim UserName As String
Dim UserPassword As String
 Private Sub Form_Load()
  'example created by Tim Derdelinckx ([email protected])
  'visit his site at http://www.allgeier.be
  theNetResource.lpRemoteName = "\\SERVER\ShareName"
  theNetResource.lpLocalName = "Z:"
  UserName = "Username"
  UserPassword = "Password"
  theNetResource.dwType = RESOURCETYPE_DISK
  Label1.Caption = ""
  Command1.Caption = "Add Connection"
  Command2.Caption = "Cancel Connection"
End Sub
Private Sub Command1_Click()
  Dim Result&
    Result = WNetAddConnection2(theNetResource, UserPassword, UserName, 0)
    If Result = 0 Then
      Label1.Caption = "Connection Established."
      Drive1.Drive = theNetResource.lpLocalName
      Drive1.Refresh
    Else
      Label1.Caption = "Connection not possible."
      MsgBox "Connection not possible." & vbCrLf & "(Maybe the drive is allready used or the share doesn't exist)"
    End If
End Sub
Private Sub Command2_Click()
  Dim Result&
    Result = WNetCancelConnection2(theNetResource.lpLocalName, 0, 0)
    If Result = 0 Then
      Label1.Caption = "Connection Closed."
    Else
      Label1.Caption = "Close connection not possible."
    End If
    Drive1.Refresh
End Sub
Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #5 (permalink)  
Antiguo 29/07/2004, 08:41
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 2 meses
Puntos: 1
Con un .bat se resuelve.

Hay una solución simple para eso, crea un archivo bat que te mapee la carpeta compartida, los copias a los clientes y lo configuras para que se ejecute cada vez que hagan sesión.

net use unidad: \\pc\carpeta [/USER:usuario password]

Espero que te sirva.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #6 (permalink)  
Antiguo 01/08/2004, 05:36
 
Fecha de Ingreso: julio-2003
Mensajes: 45
Antigüedad: 20 años, 8 meses
Puntos: 0
Muchas gracias por vuestra ayuda.
Un abrazo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:29.