Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ejecutar archivos CAB desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=19243)

Pablo Carlos 08-03-2005 21:50:27

Ejecutar archivos CAB desde Delphi
 
Hola gente... para ejecutar otra aplicación desde delphi podemos usar los siguiente:
Código Delphi [-]
WinExec(PChar('C:\LocalizaciónExe\exe'), SW_SHOWNORMAL);
Hasta aqui todo bien... ahora para un archivo de windows tipo CAB (esas cajitas...) no funciona el WinExec...
1.- alguien sabe porqué y cómo ejecutarlos desde mi prg. (Este archivo estaría alojado en la lectora de cd junto al setup del prg) :confused:
2.- ¿Se puede alojar en mi setup esos archivos cab y al instalar el prg se instale los cab? :confused:
Muchas gracias... saludos

Neftali [Germán.Estévez] 09-03-2005 09:26:13

Cita:

Empezado por Pablo Carlos
Hasta aqui todo bien... ahora para un archivo de windows tipo CAB (esas cajitas...) no funciona el WinExec...
1.- alguien sabe porqué y cómo ejecutarlos desde mi prg. (Este archivo
estaría alojado en la lectora de cd junto al setup del prg) :confused:

2.- ¿Se puede alojar en mi setup esos archivos cab y al instalar el prg se instale los cab?

Los archivos CAB no son ejecutables, por lo tanto no se "deberían" ejecutar o instalar como comentas. Los CAB son archivos comprimidos, por lo tanto debes tener una utilidad de descompresión asociado a descomprimirlos, pero no funcionará directamente.

Si buscas por interner existen muchos componentes que permiten descomprimir ficheros CAB; Por ejemplo:

http://www.ziptv.com/
o éste
http://sourceforge.net/projects/tpabbrevia/

Pablo Carlos 10-03-2005 22:22:44

Gracias por responder...
Cita:

Empezado por Neftali
Los archivos CAB no son ejecutables

Totalmente de acuerdo
Cita:

Empezado por Neftali
por lo tanto no se "deberían" ejecutar o instalar como comentas

Pero haciendole doble click en el archivo se ejecutan como un exe
Cita:

Empezado por Neftali
Los CAB son archivos comprimidos, por lo tanto debes tener una utilidad de descompresión asociado a descomprimirlos.

y... eso... como asocia Windows al hacerle doble click?
Abria que investigar por alli... me meto en ese tema... si lo encuentro lo hare saber...
Saludos Pablo

argami 11-03-2005 14:17:07

el tema de las asociaciones es como un fichero txt que de por si no hace nada pero si tu haces dblclick te abre el notepad.

si lo que quieres es abrir un fichero segun su asociacion usa la funcion ShellExecute de la api en Delphi 7 creo recordar que esta en ShellApi.

Ejemplo:
ShellExecute(Handle, 'open', 'C:\Pathfichero.cab', nil, nil, SW_SHOWNORMAL);

espero que esto te ayude.

PD: si quieres revisar con que esta asociado tu programa en opciones de carpeta (en cualquier ventana del windows en herramientas) tienes una pestaña que se llama tipos de archivo puedes buscar el cab dentro de la lsta.

Pablo Carlos 13-03-2005 17:35:27

Prometido y cumplo...
De esta manera ejecuto e instalo los .CAB

Código Delphi [-]
procedure TfrmPath.InstalarAgente;
  procedure RunAndWaitShell(Ejecutable,
                            Argumentos:string
                            ;Visibilidad:integer);
  var
     Info:TShellExecuteInfo;
     pInfo:PShellExecuteInfo;
     exitCode:DWord;
begin
     pInfo:=@Info;
     with Info do
     begin
      cbSize:=SizeOf(Info);
      fMask:=SEE_MASK_NOCLOSEPROCESS;
      wnd:=Handle;
      lpVerb:=nil;
      lpFile:=PChar(Ejecutable);
      lpParameters:=Pchar(Argumentos+#0);
      lpDirectory:=nil;
      nShow:=Visibilidad;
      hInstApp:=0;
     end;
     ShellExecuteEx(pInfo);
     repeat
      exitCode := WaitForSingleObject(Info.hProcess,500);
      Application.ProcessMessages;
     until (exitCode <> WAIT_TIMEOUT);
  end;
begin
  RunAndWaitShell('c:\Genie','', Sw_ShowNormal);
  RunAndWaitShell('c:\MSagent','', Sw_ShowNormal);
end;

Gracias a todos los que respondieron
Saludos bye


La franja horaria es GMT +2. Ahora son las 04:24:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi