Estimados amigos
Estoy queriendo incluir una rutina de respaldo automatico al salir de mis sistema utilizando winrar, pero me genera un error y les consulto cual seria la forma correcta de hacerlo, dentro del form principal he creado un metodo "Respaldo" para llamarlo cuando estoy saliendo, el codigo es el siguiente:
LOCAL lcCarpeta1, lcCarpeta2, lcCarpeta2, rutasistema, rutabasedatosorigen, rutabasedatosrepaldo, respaldar, nombredestino
*******esta es la ruta en donde se haran los repaldos automaticos
rutasistema = SYS(5) + CURDIR()
lccarpeta1 = oasetup.pathbackupautomatico
rutabasedatosrepaldo = rutasistema + lccarpeta1
nombredestino = rutabasedatosrepaldo +"RESP-SIST_" + ALLTRIM(STR(DAY(DATE()))) + '_' + ALLTRIM(STR(MONTH(DATE())))+ '_' + ALLTRIM(STR(YEAR(DATE())))
*********lo necesitamos esta ruta para hacer rar a todo la caperta
lcCarpeta2= oasetup.pathrespaldobase
rutabasedatosorigen = rutasistema + lcCarpeta2 + "*.*"
*!* Borrar el archivo rar que se encuentra en la carpeta backup para solo quede uno solo
DELETE FILE rutabasedatosrepaldo + "RESP-SIST*.*"
*!* **********************************************************
CLOSE DATABASES ALL
archi_rar = Getenv("ProgramFiles")+"\WinRAR\WinRar.exe"
a_origen = rutabasedatosorigen
r_destino = nombredestino
IF FILE('&archi_rar', 1)
Thisform.SetAll('Enabled',.F.)
WAIT WINDOW NOWAIT 'Comprimiendo archivos.....'
cfilename = archi_rar
caction = "open"
cparameter = ' A &r_destino *.dbc *.dcx *.dct *.bhj *.dbf *.cdx *.fpt *.tds'
=shellexecute(0, caction, cfilename, cparameter, "", 1)
*!* para el ini
oappini.guardardestinobackup(archivo_config,'ultimorespaldo',r_destino)
MESSAGEBOX('Respaldo automatico realizado exitosamente',64,' Aviso...',1200)
ELSE
=MESSAGEBOX('No se puede realizar el Respaldo Automatico' +CHR(13)+;
'porque no se encuentra el programa WINRAR.', 64, 'WINRAR - IMPORTANTE',1200)
ENDIF
despues he creado un metodo para salir del sistema dentro del form principal "Salida" el codigo que tengo dentro de este metodo es el siguiente:
IF salirsinpreguntar = "no"
IF apli_corriendo = "si"
CLEAR WINDOW
THISFORM.Release()
ELSE
OASETUP.APLICAR_SONIDO('SALIR')
THISFORM.Respaldo
IF TXNLEVEL() > 0
ROLLBACK
ENDIF
CLEAR WINDOW
CLEAR DLLS
CLOSE ALL
RELEASE ALL EXTENDED
CLEAR MEMO
THISFORM.Release
ENDIF
ENDIF
el error que me genera es una exepcion en la llamada api de windows
de antemano les agradecere por cualquier comentario para solucionar el problema.
--
Ing. Marcelo Barberis Gutierrez
Sistemas Informaticos Inc
Villa Montes - Bolivia
Telef.:
+591-76831064