Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.561
Poder: 27
dec Va camino a la famadec Va camino a la fama
Ejecutar una aplicación y, opcionalmente, esperar a su término

Con el siguiente procedimiento podemos ejecutar una determinada aplicación y, opcionalmente, esperar a que la misma termine para luego retomar el control desde nuestro programa:

Código Delphi [-]
uses
  Forms, ShellApi;

procedure EjecutarExe(const ruta,
  args: string; esperar: boolean);
var
  salida: DWord;
  PSEI: PShellExecuteInfo;
  SEI: TShellExecuteInfo;
begin
  if not FileExists(ruta)
    then Exit;
  with SEI do begin
    hInstApp := 0;
    lpVerb := nil;
    lpDirectory := nil;
    nShow := SW_NORMAL;
    cbSize := SizeOf(SEI);
    lpFile := PChar(ruta);
    wnd := GetDesktopWindow;
    lpParameters := Pchar(args+#0);
    fMask := SEE_MASK_NOCLOSEPROCESS;
  end;
  PSEI:= @SEI;
  ShellExecuteEx(PSEI);
  if not esperar then Exit;
  repeat
    salida := WaitForSingleObject(
      SEI.hProcess, 500);
    Application.ProcessMessages;
  until (salida <> WAIT_TIMEOUT);
end;
Responder Con Cita
  #2  
Antiguo 08-06-2006
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
No funciona muy bien este truco al menos en mi pc.
Tengo Windows XP y lo que ocurre es que puedo seguir usando mi aplicación a pesar de que el exe que llamé con EjecutarExe esté corriendo.
De mas está decir que pasé True como 3er parámetro de ese procedimiento.
Responder Con Cita
  #3  
Antiguo 09-05-2007
lacovera lacovera is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 12
lacovera Va por buen camino
A mi me funciona muy bien, llamo al procedimiento así
ejecutarExe('C:\ejecutable.exe',parametro,true);
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 16:30:53.


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