FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Descomprimir archivo rar
Buenas.
Primeramente me gustaría hacer hincapié en mi inutilidad para buscar en este foro. Lo que realmente quiero lograr es descomprimir un archivo rar dado sin que se habra la ventanita típica de winrar para explorar archivos. Es decir shellexecute(archivo.rar) no me vale. Si me voy a Windows Inicio y escribo winrar E archivo.rar sucese algo similar a lo que quiero lograr. Se descomprme el archivo y sólo veo la barra de progreso. Trato de hacer lo mismo pero no tengo ni idea. En la página de Winrar hay tutoriales de los parámetros que se pueden pasar pero le pongo los parametros en shellexecute ShellExecute(Self.Handle,'',pansichar(flname.FileName),'','E',SW_HIDE) (se supone que la E es lo que hace que descomprima sin rechistar) y me muestra la dichosa pantallita que no quiero ver... Imagino que habrá algún hilo/tema/post que me pueda servir. Si fuesen tan amables de redirigerme... Muchas gracias. |
#3
|
||||
|
||||
Para descomprimir archivos en general, ya sea con WinRAR, WinZip y otros sin componentes, lo primero que tienes que entender es que el programa principal (el IDE) no es el compresor en si, sino que es una interfaz gráfica de usuario para la consola de comandos/librerías que vienen incluidas para trabajar con la GUI. Además debes detectar la instalación del compresor y la ruta del mismo para que el programa no se cuelgue. Para saber en qué ruta está instalado WinRAR puedes hacer una rutina simple examinando las claves/valores desde el registro de Windows (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver)
Bueno... directamente con lo que requieres, debes pasarles parámetros a la consola de comandos (a rar.exe) de WinRAR para comprimir/descomprimir archivos de este tipo. La consola de comandos tiene como nombre de archivo rar.exe y se encuentra en el directorio de instalación del programa (EJ: C:\Archivos de programa\WinRAR). Al examinar la ayuda de la consola, se despliega esto: Código:
C:\Archivos de programa\WinRAR>rar.exe /? Uso: rar <orden> -<parámetro 1> -<parámetro N> <archivo> <ficheros...> <@lista de ficheros...> <ruta_de_extracción\> <Ordenes> a Añadir ficheros al archivo c Añadir comentario de archivo cf Añadir comentario de ficheros ch Cambiar parámetros del archivo cw Escribir el comentario de archivo en el fichero d Eliminar ficheros del archivo e Extraer ficheros en el directorio actual f Actualizar los ficheros del archivo i[par]=<str> Buscar cadena en los archivos k Bloquear el archivo l[t,b] Listar contenido [técnico,simple] m[f] Mover al archivo [sólo ficheros] p Sacar el fichero por la salida estándar r Reparar el archivo rc Reconstruir volúmenes perdidos rn Renombrar ficheros comprimidos rr[N] Añadir registro de recuperación de datos rv[N] Crear volúmenes de recuperación s[nombre|-] Convertir el archivo en o desde SFX t Comprobar los ficheros de archivo u Actualizar los ficheros en el archivo v[t,b] Listado detallado del archivo [técnico,simple] x Extraer ficheros con la ruta completa <Parámetros> - Detener el escaneo de parámetros ac Borrar el atributo Archivo tras la compresión o extracción ad Añadir nombre de archivo a la carpeta de destino ag[formato] Generar el nombre de archivo usando la fecha actual ao Añadir los ficheros con el atributo Archivo activado ap<ruta> Establecer la ruta dentro del archivo as Sincronizar el contendido del archivo av Incluir Verificación de Autenticidad (sólo versiones registradas ) av- Desactivar la comprobación de autenticidad c- No mostrar comentarios cfg- No leer configuración cl Convertir los nombres a minúsculas cu Convertir los nombres a mayúsculas df Eliminar los ficheros tras la compresión dh Abrir los ficheros compartidos ds Desactivar la clasificación por nombre en los archivos sólidos e[+]<attr> Set file exclude and include attributes ed No añadir directorios vacios en No añadir bloque de 'final de archivo' ep Excluir las rutas de los nombres ep1 Excluir el directorio raíz de los nombres ep2 Expandir las rutas al máximo ep3 Expandir las rutas al máximo incluyendo la letra de la unidad f Actualizar los ficheros hp[ctrña] Codificar cabeceras y datos id[c,d,p,q] Disable messages ieml[email] Enviar archivo por email ierr Mostrar mensajes en la consola de depuración ilog[fichero] Registrar los errores en un fichero (sólo versión registrada) inul Desactivar todos los mensajes ioff Apagar el PC después de finalizar la operación isnd Activar el sonido k Bloquear el archivo kb Conservar los ficheros extraídos dañados m<0..5> Establecer nivel de compresión (0-guardar ... 3-normal 5-máxima) mc<par> Establecer parámetros avanzados de compresión md<tamaño> Establecer el tamaño del diccionario en KB (64,128,256,512,1024, 2048,4096 ó A-G) ms[lista] Especificar tipos de ficheros a almacenar mt<threads> Especificar número de procesos n<fichero> Incluir solo el fichero especificado n@ Leer ficheros a incluir de la entrada estandard n@<lista> Incluir los ficheros especificados en la lista de fichero o+ Sobrescribir los ficheros existentes o- No sobrescribir los ficheros existentes oc Guardar atributo NTFS de compresión or Renombrar ficheros automáticamente os Guardar flujos NTFS ow Guardar o restablecer el propietario y grupo del p[contraseña] Escpcificar la contraseña p- No preguntar la contraseña r Recorrer recursivamente la estructura de directorios r0 Recorrer recursivamente sólo los subdirectorios de los nombres c on comodín ri<P>[:<S>] Escpcificar la prioridad (0-predeterminda,1-min..15-máx) y el ti empo de inactividad en ms rr[N] Añadir registro de recuperación de datos rv[N] Crear volúmenes de recuperación s[<N>,d,e] Crear un archivo sólido s- Desactivar la compresión sólida sc<chr>[obj] Specify the character set sfx[nombre] Crear un archivo SFX si[name] Read data from standard input (stdin) sl<size> Process files with size less than specified sm<size> Process files with size more than specified t Comnprobar ficheros después de comprimir ta<fecha> Procesar ficheros modificados después de <fecha> en formato AAAA MMDDHHMMSS tb<fecha> Procesar ficheros modificados antes de <fecha> en formato AAAAMM DDHHMMSS tk Conservar la hora original del archivo tl Establecer como hora de archivo la del último fichero tn<fecha> Procesar ficheros posteriores a <fecha> to<fecha> Procesar ficheros anteriores a <fecha> ts<m,c,a>[N] Guardar o restaurar fecha y hora (modificación, creación, acceso ) u Actualizar los ficheros v Crear volúmenes con detección automática de tamaño o listar todo s los volúmenes v<tamaño>[k,b]Crear volúmenes con tamaño =<size>*1000 [*1024, *1] vd Borrar el contenido del disco antes de crear un volumen ver[n] Control de versión de ficheros vn Usar nomenclatura antigua de volúmenes vp Detenerse antes de cada volumen w<ruta> Asignar el directorio de trabajo x<fichero> Excluir el fichero especificado x@ Leer ficheros a excluir de la entrada estándar x@<lista> Excluir los ficheros especificados en la lista de fichero y Suponer Sí a todo z[file] Read archive comment from file
Si deseas controlar toda la ejecución y sus hilos de la consola y saber qué valores devuelve al finalizar la compresión/descompresión (ExitCode), utiliza la función CreateProcess en vez de ShellExecute (consultar la ayuda de Delphi para ampliar esta información). Saludos y buena suerte Última edición por Black_Ocean fecha: 15-04-2008 a las 21:47:16. |
#4
|
||||
|
||||
[cHackAll], me ganaste el primero posteo de nuevo , me demoré mucho en terminar de escribir jejejeje, que son rápidos aquí. Bueno, ahí tienes dos ayudas, la de Él y la mía =)
Saludos. |
#5
|
|||
|
|||
Oye pues muchas gracias.
Y ahora ya el colofón final para dejarlo todo aquí en el mismo hilo. Si rar.exe no está en archivos de programa o en c:\...sino en D:\.... ¿Como busca delphi en el registro la ruta exacta del ejecutable rar.exe? Si obtenemos la ruta del programa asociado a *.rar lo tenemo redondo? Lo he dicho así sin mirar. Me suena que hay una clase que es la que se usa para el registro. Mañana miraré a ver si encuentro el ejemplo que tenía de eso a ver si saco algo. Muchas gracias de nuevo a todos. |
#6
|
|||
|
|||
Vaya perdón que si que lo habias comentado...
|
#7
|
||||
|
||||
Pero estamos suponiendo que:
- Winrar está instalado - y que está en la ruta tal o cual. ¿Y si no dependes de winrar e implementas tú la compresión/decompresión? Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
no puedo abrir un archivo con ShellExecute si el archivo es variable | belpab | API de Windows | 2 | 28-11-2007 16:24:22 |
Comprimir y descomprimir con ZipMaster | Espartaco | OOP | 2 | 22-02-2007 12:45:27 |
descomprimir archivos | diniremix | Varios | 2 | 15-05-2006 18:35:46 |
codigo para descomprimir un archivo .zip | JAI_ME | Varios | 4 | 30-01-2006 17:37:08 |
descomprimir un programa | nachete | Varios | 0 | 11-03-2005 18:05:06 |
|