• Viernes 8 de Noviembre de 2024, 12:46

Autor Tema:  Re: copiar ejecutable al system  (Leído 1345 veces)

abm

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: copiar ejecutable al system
« en: Sábado 22 de Noviembre de 2003, 23:25 »
0
Quisiera hacer lo siguiente si se puede claro: Que un formulario tenga un botón que al click busque un exe que esta en el
disco duro y que cuando lo encuentre le de la orden de copiarse en el windows
system.Gracias

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: copiar ejecutable al system
« Respuesta #1 en: Miércoles 26 de Noviembre de 2003, 15:22 »
0
Hola abm.

Mira lo pretendes a grandes rasgos se puede hacer así:

- Utiliza la función Dir especificando el directorio raíz para el caso y como atributos vbDirectory[/] para obtener en una matríz el conjunto de subdirectorios del directorio que especifiques (en tu caso C:).

- Realiza bucles hasta obtener el total de los subdirectorios.

- Recorre la matriz en la que almacenaste los directorios y  vuelve a utilizar 'Dir', esta vez especificando el archivo que buscas.

- Si lo encuentras, sal de bucle y ya sólo te queda copiarlo a donde quieras con
<b>FileCopy
.

- Si quieres copiarlo al directorio del sistema y no sabes cúal es, utiliza la api
GetSystemDirectory.

Suerte.

abm

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: copiar ejecutable al system
« Respuesta #2 en: Miércoles 26 de Noviembre de 2003, 18:15 »
0
Joder, que facil parece explicado por tí.Me parece un harto dificil para mis conocimientos ahora mismo.De todas las
maneras gracias por la ayuda.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: copiar ejecutable al system
« Respuesta #3 en: Jueves 27 de Noviembre de 2003, 09:34 »
0
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub XXXX( )
.
.
.

    Dim str1 As String
    str1 = String(255, Chr(0))
    Dim lngRc As Long
    lngRc = GetSystemDirectory(str1, 255)
    If lngRc > 0 Then str1= Left(str1, lngRc) & ""

If BuscarCopiar("MiFile.aaa", str1 & "FileCopiado.xxx", "C:") Then
        MsgBox "OK"
    Else
        MsgBox "KO"
    End If

.
.
.

End Sub

Public Function BuscarCopiar(ByVal FileName As String, ByVal Destino As String, Optional ByVal Root As String)
'FileName = nombre de archivo pc (sin ruta) a buscar
'Destino = nombre de archivo pc (con ruta) destino
'Root = opcional, carpeta desde la que comenzar a buscar
'Esta función puede tomarse su tiempo, así que paciencia

    Dim sngMouseP As Single
    sngMouseP = Screen.MousePointer
    Screen.MousePointer = 11
   
    On Error GoTo Err_Buscar
   
    Dim strDires() As String, strDir As String
    Dim lng1 As Long, lng2 As Long, lng3 As Long
    Dim lngCta As Long, str1 As String, IND1 As Boolean
   
    If Root = "" Then Root = App.Path
    If Right(Root, 1) <> "" Then Root = Root & ""
   
    ReDim strDires(1)
    strDires(0) = Root
   
BucleDir:
    For lng1 = lng2 To lng3
        Root = strDires(lng1)
        strDir = Dir(Root, vbDirectory)
        Do While strDir <> ""
            If strDir <> "." And strDir <> ".." _
            And (GetAttr(Root & strDir) And vbDirectory) = vbDirectory Then
                lngCta = lngCta + 1
                str1 = Root & strDir & ""
                ReDim Preserve strDires(lngCta)
                strDires(lngCta) = str1
                IND1 = True
           End If
           strDir = Dir
        Loop
    Next lng1
    lng3 = UBound(strDires)
    lng2 = lng1
    If lng2 <= lng3 And IND1 Then GoTo BucleDir
   
    IND1 = False
   
    For lngCta = 0 To UBound(strDires)
        strDir = Dir(strDires(lngCta) & FileName)
        If strDir <> "" Then
            FileName = strDires(lngCta) & FileName
            IND1 = True
            Exit For
        End If
    Next lngCta
   
    If IND1 Then
        FileCopy FileName, Destino
        BuscarCopiar = True
    End If
   
Exit_Buscar:
    Screen.MousePointer = sngMouseP
    Exit Function
   
Err_Buscar:
    MsgBox "(" & Err.Number & ") " & Err.Description _
    , vbCritical, "Error buscar y copiar"
    Resume Exit_Buscar

End Function

Mira, ahí tienes el trabajo hecho.
No es que hayas pedido que alguien lo hiciera por ti, pero es como si lo hubieses hecho...
Intenta ser más concreto en tus consultas y nunca pretendas obtener de un foro el código que te resuelva tu aplicación. Claro que para mi es mucho más sencillo escribir un ejemplo que intentar explicar el funcionamiento de una instrucción, pero una cosa es escribir un ejemplo y otra resolverte el problema (por eso la gente suele cobrar).  Sobre estos temas se ha hablado mucho en otros posts y prefiero no volver sobre el tema.

En fin... una y no más.

Suerte.

abm

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
copiar ejecutable al system
« Respuesta #4 en: Jueves 27 de Noviembre de 2003, 19:42 »
0
La verdad es que no sabia lo dificil que era
hasta que lo pusiste.Gracias por tú buena
voluntad y espero poder ayudarte como tú has hecho conmigo,aunque en programación yo no pueda ayudarte por mís pobres conocimientos.De todas las maneras GRACIAS y FELIZ NAVIDAD.