Pregunta: | 33224 - RECURSOS COMPARTIDOS CON PASSWORD |
Autor: | Marco A. zamudio |
Hola a todos,
Tengo una base de datos en una pc, la cual está en red y la tengo en una carpeta compartida con un password, mi pregunta es, como puedo accesar (desde Vb) hacia la base de datos sin que me diga que no hay conexion con la base de datos, por la falta del password. >Gracias! |
Respuesta: | Vladimir Tapia |
yo tenia el mismo problema y lo resolvi creando una unidad de red y una ves que terminaba borraba la unidad de red!!! esto lo ice con el comando de net
hay te va un ejemplo de como acerlo!!! net use z: dircompleto Password /user:Usuario en visual basic ejecute el comando con la instuccion shell de la siquiente forma Private Const INFINITE = &HFFFF Private Const SYNCHRONIZE = &H100000 Private Declare Sub WaitForSingleObject Lib "kernel32.dll" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) Private Declare Function OpenProcess Lib "kernel32.dll" _ (ByVal dwDA As Long, ByVal bIH As Integer, ByVal dwPID As Long) As Long Private Declare Sub CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) Dim process_id As Long Dim process_handle As Long process_id = Shell("c:\windows\system32\command.com /c net use z: " & strServer1 & " " & strPassword1 & " /user:" & strUsuario1) esto que sigue es para que el programa no continue asta que se aya terminado de ejecutar la instruccion anterior process_handle = OpenProcess(SYNCHRONIZE, 0, process_id) If process_handle <> 0 Then WaitForSingleObject process_handle, INFINITE CloseHandle process_handle End If y para borrar la unidad de red es de la siguiente forma process_id = Shell("c:\windows\system32\command.com /c net use z: /delete /yes") process_handle = OpenProcess(SYNCHRONIZE, 0, process_id) If process_handle <> 0 Then WaitForSingleObject process_handle, INFINITE CloseHandle process_handle End If espero que te sirva de algo!!! |