SoloCodigo
Programación General => Visual FoxPro => Mensaje iniciado por: mlaura en Sábado 17 de Noviembre de 2007, 15:08
-
Hola!
Necesito comprimir archivos desde un código de Vfp, para ello quiero utilizar una líneo de comando de Winrar. Por favor, me podrían decir que debo hacer para que la línea de comando del Winrar funcione?, intenté con RUN pero no funciona, o estoy haceindo algo mal?
Desde ya muchas gracias!!!
Saludos :)
-
Usa esto :
Dim ret As Long
ret = Shell("c:\program files\winrar\rar a -ap c:\test.rar -ptest c:\answer.txt c:\test.xml")
= OPEN_FILE("c:\program files\winrar\rar a -ap c:\test.rar -ptest c:\answer.txt c:\test.xml")
Con la API ShellExecute.
FUNCTION OPEN_FILE(pcFileName,pcAction,pcParams,pcDefDir,pnShowWindow )
****************************************************
* Filename
If Vartype(pcFileName) <> "C"
MessageBox("Need a file to open!")
Return 0
Endif
* Action
If Vartype(pcAction) <> "C"
pcAction = "open"
Endif
* Parameters
If Vartype(pcParams) <> "C"
pcParams = ""
ENDIF
* Default Directory
If Vartype(pcDefDir) <> "C"
pcDefDir = ADDBS(SYS(5)+CURDIR())
ENDIF
* Show Window (min / Max etc)
If Vartype(pnShowWindow) <> "N"
pnShowWindow = 1
Endif
#Define SE_ERR_FNF 2
#Define SE_ERR_PNF 3
#Define SE_ERR_ACCESSDENIED 5
#Define SE_ERR_OOM 8
#Define SE_ERR_DLLNOTFOUND 32
#Define SE_ERR_SHARE 26
#Define SE_ERR_ASSOCINCOMPLETE 27
#Define SE_ERR_DDETIMEOUT 28
#Define SE_ERR_DDEFAIL 29
#Define SE_ERR_DDEBUSY 30
#Define SE_ERR_NOASSOC 31
#Define ERROR_BAD_FORMAT 11
Declare Integer ShellExecute In shell32.Dll ;
INTEGER hndWin, ;
STRING cAction, ;
STRING cFileName, ;
STRING cParams, ;
STRING cDir, ;
INTEGER nShowWin
cFileName = pcFileName
cAction = pcAction
cParams = pcParams
cDir = pcDefDir
nShowWin = pnShowWindow
Local lnRetVal
lnRetVal = 0
lnRetVal = ShellExecute(0,cAction,cFileName,cParams,cDir,nShowWin)
If lnRetVal <= 32
Local msg
msg = ""
*There was an error
Do Case
Case lnRetVal = SE_ERR_FNF
msg = "File not found"
Case lnRetVal = SE_ERR_PNF
msg = "Path not found"
Case lnRetVal = SE_ERR_ACCESSDENIED
msg = "Access denied"
Case lnRetVal = SE_ERR_OOM
msg = "Out of memory"
Case lnRetVal = SE_ERR_DLLNOTFOUND
msg = "DLL not found"
Case lnRetVal = SE_ERR_SHARE
msg = "A sharing violation occurred"
Case lnRetVal = SE_ERR_ASSOCINCOMPLETE
msg = "Incomplete or invalid file association"
Case lnRetVal = SE_ERR_DDETIMEOUT
msg = "DDE Time out"
Case lnRetVal = SE_ERR_DDEFAIL
msg = "DDE transaction failed"
Case lnRetVal = SE_ERR_DDEBUSY
msg = "DDE busy"
Case lnRetVal = SE_ERR_NOASSOC
msg = "No association for file extension"
Case lnRetVal = ERROR_BAD_FORMAT
msg = "Invalid EXE file or error in EXE image"
Otherwise
msg = "Unknown error"
Endcase
RETURN .F.
Else
Return .T.
Endif
ENDFUNC