Dirección completa de disco lógico
Publicado por Cachilapo (11 intervenciones) el 25/05/2012 16:38:28
Hola como están todos, mi problema es el siguiente: tengo un disco lógico que realmente es una carpeta compartida, utilizo una api de windows con la función de WNetGetConnection, bien todo esto funcionaba a la perfección solo enviaba el disco "Y:" y la función me devolvía "\\Servidor\Carpeta\", pero ahora instale mi sistema sobre Win7 64Bits y la función ya no me sirve :-( trate también con la función ANETRESOURCES() y tampoco me sirve da error.
Gracias por sus respuestas...
Ejemplo del Código de WNetGetConnection
Declare Integer WNetGetConnection In MPR.Dll As GetUNCPath ;
STRING lpszLocalName, ;
STRING @lpszRemoteName, ;
INTEGER @lSize
Function DirectorioLogico(tcUnidad)
Local lcRemoteName, lcRemote, lcCaracter, lcUnidad As String
Local lnSize, lnError, i, Y As Integer
lcRemote = ""
lcUnidad = Strtran(tcUnidad,"\","")
i = 1
Y = 1
lcRemoteName = Space(255)
lnSize = 255
lnError = GetUNCPath(Alltrim(lcUnidad),@lcRemoteName,@lnSize)
If lnError = 0 Then
For i = 1 To Len(Alltrim(lcRemoteName))
If Y = i Then
lcCaracter = Alltrim(Substr(lcRemoteName,i,1))
Else
i = Y
lcCaracter = Alltrim(Substr(lcRemoteName,i,1))
Endif
If !Empty(lcCaracter) Then
lcRemote = lcRemote + Substr(lcRemoteName,i,1)
i = i + 1
Y = Y + 1
Endif
Endfor
Endif
Return lcRemote
Endfunc
Gracias por sus respuestas...
Ejemplo del Código de WNetGetConnection
Declare Integer WNetGetConnection In MPR.Dll As GetUNCPath ;
STRING lpszLocalName, ;
STRING @lpszRemoteName, ;
INTEGER @lSize
Function DirectorioLogico(tcUnidad)
Local lcRemoteName, lcRemote, lcCaracter, lcUnidad As String
Local lnSize, lnError, i, Y As Integer
lcRemote = ""
lcUnidad = Strtran(tcUnidad,"\","")
i = 1
Y = 1
lcRemoteName = Space(255)
lnSize = 255
lnError = GetUNCPath(Alltrim(lcUnidad),@lcRemoteName,@lnSize)
If lnError = 0 Then
For i = 1 To Len(Alltrim(lcRemoteName))
If Y = i Then
lcCaracter = Alltrim(Substr(lcRemoteName,i,1))
Else
i = Y
lcCaracter = Alltrim(Substr(lcRemoteName,i,1))
Endif
If !Empty(lcCaracter) Then
lcRemote = lcRemote + Substr(lcRemoteName,i,1)
i = i + 1
Y = Y + 1
Endif
Endfor
Endif
Return lcRemote
Endfunc
Valora esta pregunta


0