Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Acreca de la instruccion ShellExecute (https://www.clubdelphi.com/foros/showthread.php?t=24064)

quake2420 06-08-2005 18:42:01

Acreca de la instruccion ShellExecute
 
Hola amigos, mi duda es la siguiente:
Estoy realizando un aplicacion y una de las funciones que tengo que hacer es ejecutar un programa desde la aplicacion, esa parte esta solucionada usando la instruccion Shellexecute, lo que quiero es que hasta que no se cierre el programa al que estoy llamando no vuelva el control a mi aplicacion ¿Que instruccion debo usar para eso?
Gracias por adelantado

dec 06-08-2005 21:47:38

Hola,

A ver si un procedimiento tal que así puede apañarte:

Código Delphi [-]
// Este es un procedimiento adaptado de un truco que puede
// hallarse en TrucoMania (http://www.q3.nu/) y lo utilizamos
// cuando queremos ejecutar un programa, con la particularidad
// de que, si se precisa, podemos hacer que nuestro programa
// espere a que el que ejecutamos termine su trabajo.
//
procedure EjecutarPrograma(rutaPrograma,
  parametros: string; esperar: boolean);
var
  salida: DWord;
  punteroInfo: PShellExecuteInfo;
  infoEjecucion: TShellExecuteInfo;
begin
  with infoEjecucion do
  begin
    cbSize := SizeOf(infoEjecucion);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    wnd := GetActiveWindow;
    lpVerb := nil;
    lpFile := PChar(rutaPrograma);
    lpParameters := Pchar(parametros + #0);
    lpDirectory := nil;
    nShow := SW_NORMAL;
    hInstApp := 0;
  end;
  punteroInfo:= @infoEjecucion;
  ShellExecuteEx(punteroInfo);
  if esperar then
    repeat
      salida := WaitForSingleObject(
        infoEjecucion.hProcess, 500);
      Application.ProcessMessages;
    until (salida <> WAIT_TIMEOUT);
end;
De todos modos infórmate sobre "TShellExecuteInfo" buscando en estos Foros o en la propia ayuda de Delphi.


La franja horaria es GMT +2. Ahora son las 06:48:40.

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