|
|
|
|
|
 |
 |
 |
|
Foros MUGPERU
|
 |
 |
| 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. |
|
|
|
ActiveForums 3.7
|
 |
 |
 |
 |
|
|
|
|
|
|
|
|
|