Visual Basic - Ayuda

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda

Publicado por Carlos (5 intervenciones) el 27/03/2004 19:21:13
Hola, el problema es el siguiente:
con la funcion shell abro winrar y comprimo un fichero y acto seguido le digo al programa que me copie el fichero comprimido en otro directorio, el problema es, creo, que me falla porque cuando pretende copiarlo, el fichero no esta creado o esta en uso. El caso es que necesito que el programa espere a que termine de comprimir y despues haga la copia del fichero a otro directorio.

Alguna idea??

Gracias





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

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

RE:Ayuda

Publicado por Band (4 intervenciones) el 27/03/2004 20:39:09
Esto puede deberse a que al ejecutar el winrar se sigan ejecutando las líneas de tu programa y el winrar no haya terminado la compresión.

Si lo controlas este caso no deberías tener problemas porque primero obligas a cerrar el winrar antes de seguir ejecutando las líneas de tu código. Un ejemplo:

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) _
As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, _
lpExitCode As Long) _
As Long

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Const STILL_ACTIVE = &H103
Private Const PROCESS_QUERY_INFORMATION = &H400
Dim hProcess As Long
Dim RetVal As Long

Public Function EjecutaAPP(ByVal Tarea As String, ByVal Modo As Integer) As Boolean

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(Tarea, Modo))

Do
GetExitCodeProcess hProcess, RetVal
DoEvents: Sleep 100
Loop While RetVal = STILL_ACTIVE

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar