Pausar con bucle.

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola buenas, me gustaría a ver si me podíais ayudar con este problema que tengo.
Tengo un programa que quiero que extraiga un archivo, 7-Zip a una carpeta con una barra de progreso.
No he sido capaz de encontrar la forma de hacer que lo haga diréctamente con el AMS, por lo que estaba haciendo un programa que cada cierto tiempo compruebe el tamaño de esa carpeta actualizando una barra de progreso.
He probado a hacerlo con el "Shell.Execute" y poniendo a que espere a terminar la extracción para continuar la ejecución, pero claro, eso congela el programa y no funciona la barra de progreso.
También he probado a ejecutarlo sin que espere, y poner un bucle con una función que compruebe si el programa se está ejecutando, pero me he encontrado con estos problemas:

Si pongo:
while unzipcheck() == true do
Application.Sleep(10000);
end

El programa funciona bien, pero el programa ocupa un 50% de la CPU (para un ordenador de un núcleo sería el 100%) sólo en hacer el sleep.

Si pongo:
while unzipcheck() == true do
end

El programa se queda congelado, y sólo reacciona cuando termina la extracción, con lo que la barra de progreso no se mueve.

Quería a ver si me podíais aconsejar alguna forma de extraer el archivo con barra de progreso o alguna alternativa de bucle que no sea un ocupa-CPU's, ni congele la aplicación...

PDTA: No me sirve poner el script de actualización de la barra de progreso en el bucle, ya que es pesado y ralentizaría mucho la extracción...
También decir, que para mi es importante que sea 7-Zip el archivo comprimido, ya que con la compresión que me ofrece puedo meter dos instalaciones de 6GB y 5.6GB en 3.35GB. Si lo hago en ZIP, ZIP 2.0 o RAR, que son los que conozco plugins para descomprimir con barra de progreso, el tamaño hace que crezca a más de 4.2GB y no me entra en un DVD.

Un saludo y muchas gracias.
Hi Daniel_Lechu

How are you ?

I hope I can help you by this apz file ;)

HIDE: ON
Hidebb Message Hidden Description


greetings
application sleep  muy malo
abood1987 escribió:Hi Daniel_Lechu

How are you ?

I hope I can help you by this apz file ;)

HIDE: ON
Hidebb Message Hidden Description


greetings

Thanks for reply, but this is for Zip and i need for 7-zip, because the space is limited and with 7-zip i get a file with a size of 50% of the zip file (3.6GB vs 1.75GB).

I'm trying with RAR again, because i have a plugin that extract rar files with progress, and i think that the size was about 4.25GB (a DVD have 4.37GB), and maybe i can do it. The difference is of about 1GB from RAR to 7-Zip, but if necessary i have to do.

Greetings ;)

Y si, no se como un script para pausar puede ser tan cutre y ocupar la CPU, si hasta el sleep de microsoft funciona mejor (y eso es grave jejeje).
take a look
ok what about zipex ?
abood1987 escribió:ok what about zipex ?
ZipEx is a good plugin but, i've seen that progress is file by file, instead the whole file, and with big files (like the one that i've) the program freezes for a while... I've tried with RAR.

Finaly i've seen a page, with a sfx module for 7-zip, and i can make a self extract setup program with progress bar, and when the install program finish, then the sfx module delete the temp folder.

thanks for help ;)
Gracias

Interesante :yes:
rafaxplayer escribió:application sleep  muy malo
Bastante cierto, es mejor el timer aunque en varios casos es necesario el jodido bucle del ams, pero mas vale usarlo con un Application.Sleep(1) para que la aplicacion no deje de responder cuando se usa una informacion muy extensa, aun asi se jode por completo pues el usuario no puede interactuar mientras el bucle hace lo suyo... Insisto, mejor timer si es posible.

Saludos ;)
abood1987 :- will check it out thanks

thanks
thanks
graças
:pc: :pc: :pc:
thank you