Delphi - Como cierro una aplicacion desde mi programa

 
Vista:

Como cierro una aplicacion desde mi programa

Publicado por Marcelo (25 intervenciones) el 01/08/2003 20:19:04
hola quiero cerrar una aplicacion desde mi programa.- quiero que se cierre de forma instantanea y segura. es posible hacer esto??? desde ya agradezco su tiempo.y su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como cierro una aplicacion desde mi programa

Publicado por Caseres (11 intervenciones) el 01/08/2003 21:24:48
Es fácil: envianadole un mensaje WM_CLOSE.
Por ejemplo, cerrar la calculadora de Windows:
procedure TForm1.Button1Click(Sender: TObject);
var
Mango:integer;
begin
Mango:=FindWindow(nil,'Calculadora');
If mango=0
then ShowMessage('No encuentro esa aplicacion')
else SendMessage(Mango,WM_CLOSE,0,0);
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cerrar Aplicacion 2 parte

Publicado por Caseres (11 intervenciones) el 01/08/2003 21:28:52
Para cerrar cualquier otra aplicacion, deberias saber o bien su ClassName o bien el titulo de la ventana.
Este invento te dirá ambos de todas las aplicaciones que tengas abiertas:
Crea una form y pon un TMemo (Memo1) y un TButton (Button1) en ella.
En el private de la declaracion de la form pon:
private
{ Private declarations }
WindowList1 : TList;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como cierro una aplicacion desde mi programa

Publicado por Caseres (11 intervenciones) el 01/08/2003 21:32:30
Y en el OnCLick del Button1 pon este código:
procedure TForm1.Button2Click(Sender: TObject);
var
TopWindow : HWND;
WinName,
WinClass : array[0..80] of Char;
x : Integer;
NoError : Boolean;
function GetAllWindows(Handle: HWND;
NotUsed: Pointer): Boolean; stdcall;
begin
Result := True;
Form1.WindowList1.Add(Pointer(Handle));
end;
begin
TopWindow := Handle;
WindowList1 := TList.Create;
try
NoError := EnumWindows(@GetAllWindows,
Longint(@TopWindow));

if not NoError then
Exit;
for x := 0 to WindowList1.Count - 1 do
begin
GetWindowText(HWND(WindowList1[x]), WinName,SizeOf(WinName) - 1);
GetClassName(HWND(WindowList1[x]), WinClass,
SizeOf(WinName) - 1);
memo1.Lines.add('Titulo:'+Winname+'-Clase:'+WinClass);
end;
finally
WindowList1.Free;
end;
end;
Y tendras una lista de las tareas ejecutandose, con su titulo y nombre de clase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cerrar aplicacion 3era parte.

Publicado por Caseres (11 intervenciones) el 01/08/2003 21:41:58
Y en el OnCLick del Button1 pon este código:
procedure TForm1.Button2Click(Sender: TObject);
var
TopWindow : HWND;
WinName,
WinClass : array[0..80] of Char;
x : Integer;
NoError : Boolean;
function GetAllWindows(Handle: HWND;
NotUsed: Pointer): Boolean; stdcall;
begin
Result := True;
Form1.WindowList1.Add(Pointer(Handle));
end;
begin
TopWindow := Handle;
WindowList1 := TList.Create;
try
NoError := EnumWindows(@GetAllWindows,
Longint(@TopWindow));

if not NoError then
Exit;
for x := 0 to WindowList1.Count - 1 do
begin
GetWindowText(HWND(WindowList1[x]), WinName,SizeOf(WinName) - 1);
GetClassName(HWND(WindowList1[x]), WinClass,
SizeOf(WinName) - 1);
memo1.Lines.add('Titulo:'+Winname+'-Clase:'+WinClass);
end;
finally
WindowList1.Free;
end;
end;
Y tendras una lista de las tareas ejecutandose, con su titulo y nombre de clase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar