Un lugar de encuentro para los programadores de habla hispana

Un lugar de encuentro para los programadores de habla hispana

Buscar

Entrar

Puedes acceder utilizando tu cuenta de usuario del foro.

Si no dispone de cuenta, puede crear una accediendo al formulario de registro del foro.



Cerrar otra aplicación desde la tuya Imprimir
Ideas - Delphi

Es fácil: enviando 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;
 
 

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 se estén ejecutando

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;
 
 

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.

Comentarios (0)
Para escribir un comentario debes estar registrado