Visual Basic - mantener ruta local en ejecución distante

Life is soft - evento anual de software empresarial
 
Vista:

mantener ruta local en ejecución distante

Publicado por suportgama (1 intervención) el 09/06/2009 15:05:18
Hola a todos

En primer lugar, no domino el VB, me defiendo y poco más, y desde hace varios días tengo un prolema al que no le encuentro solución

En mi equipo (A) tengo un acceso directo a una aplicación que está en un equipo remoto de la WAN (B) que es un menú de varias aplicaciones y donde se ejecuta en modo local. Esto lo hago mediante

-------
...
Private Sub entrabibliografica_Click()

Dim RetVal
RetVal = Shell("\AlejandriaBase de Datos\aplicacion2.exe", 1)

End Sub
...
-------

Esto ejecuta una aplicacion2 que se encuentra en el equipo remoto (B), con todas sus rutas a las bases de datos, etc...
El problema es que ésta aplicación en concreto la utilizo para escoger y subir ficheros desde mi máquina local (A) al distante (B).
Para ello adapté una aplicación que encontré en la web, ya os he dicho que no domino como para poder hacerlo solo.
Si esa aplicación la ejecuto desde mi máquina (A) va perfecta, me enseña mi disco duro (A) y me permite escoger las carpetas del distante (B), pero como está instalada en el equipo (B) no me presenta mi disco local (A) sino el (B), es decir me presenta las carpetas de salida del B y las destino (B).

El código que utilizo es
------------
Private Sub cmdCopy_Click()

Dim result As Long, fileop As SHFILEOPSTRUCT
With fileop
.hWnd = Me.hWnd
.wFunc = FO_COPY
.pFrom = Text1 & vbNullChar & vbNullChar
.pTo = txtDestination & vbNullChar & vbNullChar
.fFlags = FOF_SIMPLEPROGRESS Or FOF_FILESONLY
End With
result = SHFileOperation(fileop)
If result <> 0 Then

MsgBox Err.LastDllError
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox "Operation Failed"
End If
End If

End Sub
---------------
Public Function ExtractName(SpecIn As String) As String

Dim i As Integer
Dim SpecOut As String

On Error Resume Next

For i = Len(SpecIn) To 1 Step -1
If Mid(SpecIn, i, 1) = "" Then
SpecOut = Mid(SpecIn, i + 1)
Exit For
End If
Next i

ExtractName = SpecOut

End Function
---------

Private Sub cmdCopy2_Click()

CopytoClipboard_Click
Dim lstCount As Long
Dim lstIndex As Long
Dim Files() As String
Dim nRet As Long
Dim i As Long
Text1.Text = ""
lstCount = File1.ListCount - 1
lstIndex = 0
Do
nRet = clipPasteFiles(Files)
If nRet Then
If lstIndex = nRet Then Exit Sub
If lstIndex = nRet - 1 Then

End If
If lstIndex = nRet Then Exit Sub
Text3 = Val(lstIndex) + 1
If Val(lstIndex) = nRet Then Exit Sub
Text1 = Text1 & Files(lstIndex)
cmdCopy_Click
DoEvents
End If

lstIndex = lstIndex + 1
Text1.Text = ""
Loop Until lstIndex > lstCount


End Sub
-----------

Private Sub CopytoClipboard_Click()

Dim Files() As String
Dim Path As String
Dim i As Long, n As Long
Text1.Text = ""
Text2.Text = ""
' Make sure path has trailing backslash.
Path = Dir1.Path
If Right(Path, 1) <> "" Then
Path = Path & ""
End If

' Build array of files.
With File1
For i = 0 To .ListCount - 1
If .Selected(i) Then
ReDim Preserve Files(0 To n) As String
Files(n) = Path & .List(i)
n = n + 1
End If
Next i
End With

' Copy to clipboard.
If clipCopyFiles(Files) Then
Text2 = "Success... "
Else
Text2 = "failed..."
End If
End Sub
------------

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub
-------------

Private Sub Dir2_Change()

txtDestination.Text = Dir2.Path

End Sub
-------------

Private Sub Dir2_Click()

Dir2.Path = "\alejandriaBase de Datos"

End Sub
-----------

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

Como puedo hacer para que Dir1.Path me capture el equipo desde donde estoy lanzado la aplicación (A) ?

Muchas gracias y saludos cordiales
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder