MUGPERU
  Search 
Tuesday, January 06, 2009 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: API NET CONECTAR RED... URGENTE
Prev Next
You are not authorized to post a reply.

Author Messages
BlackDevPeru
Posts:54

12/12/2007 11:42 AM  
Hola amigos. Nuevamente una consultilla, ojala algunos Gurus puedan ayudar, les explico:
Deseo que mi aplicacion entre a una ruta compartida que solo esta compartida para un usuario y password determinado. Para esto, he encontrado una API que supuestamente hace esto (Loguearse a una carpeta compartida), pero sucede que cuando intenta hacerlo, me sale el siguiente error:
"No se puede cargar el tipo 'NETRESOURCE' del ensamblado 'Components, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2fe398e85f954ffc' porque contiene un campo de objeto en el desplazamiento 4 que está alineado de forma incorrecta o superpuesto con un campo que no es de objeto."

y cuando cambio la estructura NETRESOURCE con:
, me sale el siguiente error:
"No se puede calcular la referencia de 'parameter #1': Combinación de los tipos administrado y no administrado no válida."
Aqui les envio el codigo que estoy utilizando.. talves le sirva a alguien mas. Saludos.

Este es otro error que me sale cuando trato de jugar con algunos valores:

"Una llamada a la función PInvoke 'Components!DICANET.ucPictures::WNetCancelConnection' impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino."

POR FAVOR... AYUDENMEEEE..!!!

------------------------------------------------------------------------------

Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _(<[In](), Out()> ByRef 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

_Public Structure NETRESOURCE
Public dwScope As Integer
Public dwType As Integer
Public dwDisplayType As Integer
Public dwUsage As Integer
Public lpLocalName As String
Public lpRemoteName As String
Public lpComment As String
Public lpProvider As String
End Structure

Private RutaCompartida As String = \\SERVER\SHARED
Private UnidadMapeo As String = "Y:"
Private Usuario As String = "Usuario"
Private Password As String = "Password"
Private Const NO_ERROR = 0
Private Const CONNECT_UPDATE_PROFILE = &H1
Private Const RESOURCETYPE_DISK = &H1
Private Const RESOURCETYPE_PRINT = &H2
Private Const RESOURCETYPE_ANY = &H0
Private Const RESOURCE_CONNECTED = &H1
Private Const RESOURCE_REMEMBERED = &H3
Private Const RESOURCE_GLOBALNET = &H2
Private Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
Private Const RESOURCEDISPLAYTYPE_GENERIC = &H0
Private Const RESOURCEDISPLAYTYPE_SERVER = &H2
Private Const RESOURCEDISPLAYTYPE_SHARE = &H3
Private Const RESOURCEUSAGE_CONNECTABLE = &H1
Private Const RESOURCEUSAGE_CONTAINER = &H2

Private Const ERROR_ACCESS_DENIED = 5&
Private Const ERROR_ALREADY_ASSIGNED = 85&
Private Const ERROR_BAD_DEV_TYPE = 66&
Private Const ERROR_BAD_DEVICE = 1200&
Private Const ERROR_BAD_NET_NAME = 67&
Private Const ERROR_BAD_PROFILE = 1206&
Private Const ERROR_BAD_PROVIDER = 1204&
Private Const ERROR_BUSY = 170&
Private Const ERROR_CANCELLED = 1223&
Private Const ERROR_CANNOT_OPEN_PROFILE = 1205&
Private Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&
Private Const ERROR_EXTENDED_ERROR = 1208&
Private Const ERROR_INVALID_PASSWORD = 86&
Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&

Private
Sub Conectar()
Dim NetR As NETRESOURCE = New NETRESOURCE
Dim ErrInfo As Long
Dim sPath As String
sPath = CurDir$()
NetR.dwScope = RESOURCE_GLOBALNET
NetR.dwType = RESOURCETYPE_DISK
NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE
NetR.lpLocalName = UnidadMapeo
NetR.lpRemoteName = RutaCompartida
NetR.lpComment = ""
NetR.lpProvider = ""

ErrInfo = WNetAddConnection2(NetR, Password, Usuario, CONNECT_UPDATE_PROFILE)

If ErrInfo = NO_ERROR Then
MsgBox(" Conexión realizada con éxito")
sPath = UnidadMapeo
Else
MsgBox("ERROR: " & ErrInfo & " - Net Connection Failed!", vbExclamation, "Share not Connected")
End If
End Sub

Private Sub Desconectar()
Dim ErrInfo As Long
Dim strLocalName As String

strLocalName = RutaCompartida
ErrInfo = WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE,
False)

If ErrInfo = NO_ERROR Then
MsgBox("Desconectado de la unidad " & strLocalName & " satisfactoriamente")
Else
MsgBox("ERROR: " & ErrInfo & " - Net Disconnection Failed!", vbExclamation, "Share not Disconnected")
End If
End Sub



 

malkavian_net
Posts:3

25/04/2008 01:02 PM  
..mmm estas trabajando con apis si quieres hacerlo de esa manera te recomiendo probar con otro tipo de lenguajes de nivel mas bajo, si quieres hacerlo con .NET puedes hacer esto por ejemplo utilizando Sóckets, creas un socket en la fuente de archivos que habra un puertos y los ponga en listen luego te conectas y no solo puedes controlar permisos de usuairos, carpetas, si no muchas cosas mas..


saludos
You are not authorized to post a reply.
Forums > Lenguajes de Programación > Visual Basic .NET > API NET CONECTAR RED... URGENTE



ActiveForums 3.7
        
Copyright 2001-2008 MUGPERU   Terms Of Use  Privacy Statement