Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 06-06-2007
nosferatu177 nosferatu177 is offline
Miembro
 
Registrado: mar 2007
Posts: 42
Poder: 0
nosferatu177 Va por buen camino
aprovechando...ejecutar archivo msi

hola buenas tardes, alguien de ustedes podria decirme como hacer q se ejecute un archivo .msi en el evento onclick;es q extoy haciendo un instalador y no logro hacer q se ejecute :S, ya utilice WinExec, pero creo q solo es con los .exe; gracias de antemano
Responder Con Cita
  #22  
Antiguo 06-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Has probado ShellExecute?

// Saludos
Responder Con Cita
  #23  
Antiguo 08-08-2007
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
Smile Muy util esta informacion

Pero que pasaria si ademas cuando cierre mi aplicacion, quiero saber si el programa que abri desde mi aplicacion al presionar el boton esta aun ejecutandose y si es asi cerrarlo ;

Este hilo se refiere a la ejecucion de un programa al presionar un boton;

Yo quiero saber si al cerrar mi aplicacion el programa que ejecute al presionar el boton aun esta activo y si es asi cerrarlo junto a mi aplicacion

espero sea clara la pregunta

gracias por su ayuda
Responder Con Cita
  #24  
Antiguo 08-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Cita:
Empezado por JULIPO Ver Mensaje
Pero que pasaria si ademas cuando cierre mi aplicacion, quiero saber si el programa que abri desde mi aplicacion al presionar el boton esta aun ejecutandose y si es asi cerrarlo ;

Este hilo se refiere a la ejecucion de un programa al presionar un boton;

Yo quiero saber si al cerrar mi aplicacion el programa que ejecute al presionar el boton aun esta activo y si es asi cerrarlo junto a mi aplicacion

espero sea clara la pregunta

gracias por su ayuda
Te puede valer la función ShellExecuteEx la cual recibe como parámetro un puntero hacia una estructura de tipo SHELLEXECUTEINFO, si buscas en la ayuda encontrarás información sobre todos sus miembros, donde le puedes indicar el archivo sobre el que vas a trabajar, la acción a realizar ("open", por ejemplo), etc.

Dos miembros de esta estructura que te interesarán son fMask y hProcess. Si al primero le asignas el valor SEE_MASK_NOCLOSEPROCESS, dejará el proceso ejecutándose y el miembro hProcess recibira el "handle" del proceso.

Luego podrás preguntar por el estado del proceso...

PS: "Handle" nunca lo he traducido. ¿Cuál se les ocurre la forma más correcta de hacerlo?
Responder Con Cita
  #25  
Antiguo 08-08-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola a todos, espero no llegar muy tarde


Cita:
Empezado por nosferatu177 Ver Mensaje
hola buenas tardes, alguien de ustedes podria decirme como hacer q se ejecute un archivo .msi en el evento onclick;es q extoy haciendo un instalador y no logro hacer q se ejecute :S, ya utilice WinExec, pero creo q solo es con los .exe; gracias de antemano
Código Delphi [-]
 WinExec('msiexec /i c:\windows\system32\sasetup.msi', SW_SHOW);

Cita:
Empezado por JULIPO Ver Mensaje
Pero que pasaria si ademas cuando cierre mi aplicacion, quiero saber si el programa que abri desde mi aplicacion al presionar el boton esta aun ejecutandose y si es asi cerrarlo ;

Este hilo se refiere a la ejecucion de un programa al presionar un boton;

Yo quiero saber si al cerrar mi aplicacion el programa que ejecute al presionar el boton aun esta activo y si es asi cerrarlo junto a mi aplicacion

espero sea clara la pregunta

gracias por su ayuda
Código Delphi [-]
 
...
 
implementation
 
{$R *.dfm}
 
var
 si: TStartupInfo = (cb: SizeOf(TStartupInfo));
 pi: TProcessInformation;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateProcess(nil, 'notepad', nil, nil, False, 0, nil, nil, si, pi);
end;
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 CanClose := WaitForSingleObject(pi.hProcess, 0) = WAIT_OBJECT_0;
 if not CanClose then
  MessageBox(0, 'No puedes cerrar la aplicacion hasta que cierres el Bloc de notas', nil, 0);
end;
 
end.

Saludos.
Responder Con Cita
  #26  
Antiguo 08-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Con ShellExecuteEx sería así:

Código Delphi [-]
    
    SHELLEXECUTEINFO informacion;
    ZeroMemory(&informacion, sizeof(SHELLEXECUTEINFO));
    informacion.cbSize = sizeof(SHELLEXECUTEINFO);
    informacion.fMask = SEE_MASK_NOCLOSEPROCESS;
    informacion.lpVerb = "open";                           
    informacion.lpFile = "calc.exe";
    informacion.nShow = SW_SHOWMAXIMIZED;
    ShellExecuteEx(&informacion);

Y después, preguntar con WaitForSingleObject como el código de cHackAll...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar .bat Maibok Conexión con bases de datos 5 29-10-2007 19:45:38
Ejecutar un cmd.exe en C#. REHome .NET 0 05-06-2007 21:48:27
Ejecutar Dll 3XEMIK3 Impresión 1 23-01-2006 16:56:19
Ejecutar un .EXE con una .GDB Gustavo Gowdak Conexión con bases de datos 1 17-12-2004 09:42:37
Ejecutar asp altp Internet 3 31-05-2004 19:28:32


La franja horaria es GMT +2. Ahora son las 01:46:37.


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
Copyright 1996-2007 Club Delphi