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)
-   -   Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=38863)

Gaby123 02-01-2007 17:20:08

Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7
 
Hola buenos días, me gustaria saber como cerrar una aplicación desde mi aplicacion en Delphi 7, yo la ejecuto con shellexec y le paso como operacion 'open', pero no se como cerrarla luego.
Muchas gracias

Bicho 02-01-2007 17:51:06

Hola, puedes pasarte por la sección de trucos y encontrarás éste prueba a ver que tal.

Saludos

Gaby123 02-01-2007 18:06:09

Gracias
 
Excelente muchas gracias!!
Que bueno contar con ustedes

Gaby123 02-01-2007 21:00:46

problema con el truco de findwindow
 
hola ese truco esta buenisimo, pero si la ventana no esta abierta en ese momento me cierra mi aplicacion
En la ayuda de Delphi dice que la funcion retorna NULL si falla, me imagino q si no encuentra la ventana, pero en la vida real no retorna NULL, por lo q no puedo validar q cierre la aplicacion correcta y no la mia. Espero haberme explicado...
Gracias

Bicho 02-01-2007 21:26:03

Hola nuevamente, pues siguiendo con los trucos, éste te ofrece una lista de los ejecutables que están en marcha, tu buscas en esa lista si está el que has abierto y entonces cierras como ya sabes...

Saludos

delphi.com.ar 04-01-2007 22:44:51

Cita:

Empezado por Gaby123
yo la ejecuto con shellexec y le paso como operacion 'open', pero no se como cerrarla luego.

Tratándose de un proceso que tu mismo creas, yo te recomendaría en lugar de usar ShellExecute, utilizar un CrateProcess y mantener el handle del proceso hasta que decidas terminarlo.

Código Delphi [-]
var
  lStartupInfo: TStartUpInfo;
  lProcessInfo: TProcessInformation;
begin
  ZeroMemory(@lStartupInfo, SizeOf(STARTUPINFO));
    with lStartupInfo do
  begin
    cb := SizeOf(lStartupInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_SHOW;
  end;

  if CreateProcess(nil, 'calc.exe', nil, nil, TRUE,
                   NORMAL_PRIORITY_CLASS, nil, nil, lStartupInfo, lProcessInfo) then
    if WaitForSingleObject(lProcessInfo.hProcess, 5000) = WAIT_TIMEOUT then
      TerminateProcess(lProcessInfo.hProcess, 0);


La franja horaria es GMT +2. Ahora son las 02:20:36.

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