GARANTIR DESCONTO

Fórum Fechar outro aplicativo via delphi #218723

06/03/2004

0

olá companheiro do clube, gostaria que alguém me explique como faço para fechar um aplicativo via delphi, consegui várias funções, mas todas só fecha pelo título da aplicação, quero saber como fecho pelo nome do sistema que está rodando ex. internet explorer


Infocom

Infocom

Responder

Posts

06/03/2004

Skaarj

121 - Fechar outro programa
1. Exemplo de como fechar a calculadora a partir do texto da janela

Procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(FindWindow(nil, ´Calculadora´), WM_CLOSE,0,0);
end;

2. Exemplo de como fechar a calculadora a partir da classe

Procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(FindWindow(´scicalc´, nil), WM_CLOSE,0,0);
end;
Obs.: A classe de um programa pode ser descoberta usando o programa Winsight32 que vem com o delphi.

By Lloyd Dickinson



Responder

Gostei + 0

06/04/2005

Marco Salles

Blz


Responder

Gostei + 0

04/01/2008

Vergaradan

Olá pessoal! Sou novo no fórum e estou com uma dúvida relacionada a este tópico: finalizando aplicativos externos.

Digamos que eu tenha várias aplicações abertas, inclusive a minha em delphi. Tem como, por esta aplicação, eu finalizar todas as outras, sem que sejam exibidas mensagens de confirmação?

O que eu quero, basicamente, é que minha aplicação delphi feche todos os aplicativos mas não ´se feche´.

Valeu!


Responder

Gostei + 0

05/01/2008

Vitor Alcantara

pra retirar a confirmação troque o wm_close por wm_quit.

Procedure TForm1.Button1Click(Sender: TObject); 
begin 
  PostMessage(FindWindow(nil, ´Calculadora´), WM_QUIT,0,0); 
end;


Pra listar todas as aplicações em um ListBox menos a sua tenta utilizar essa função.

Function EnumWindowsProc (Wnd: HWND; lb: TListBox): BOOL; stdcall;
var caption: Array [0..128] of Char;
hnd1,hnd2:THandle;
begin

Result := True;
hnd1 := findWindow(nil,´SisLanHouse - DesenSoftVitor´);//Nome da minha aplicação
hnd2 := FindWindow(nil,´SisCliente´);//Nome da minha segunda aplicação
if IsWindowVisible(Wnd) and
((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
(HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow))and
((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0) and
  (wnd <> hnd1) and (wnd <> hnd2)
then
begin
  SendMessage( Wnd, WM_GETTEXT, Sizeof(caption),integer(@caption));
  if Caption <> ´´ then
  
  lb.AddItem ( caption,lb);
end;
end;


Pra preencher o ListBox com os nomes das aplicações abertas.

procedure TFormLogin_FrmCliente.SpeedButton3Click(Sender: TObject);
begin
  ListBox1.Clear;
  EnumWindows( @EnumWindowsProc, integer( listBox1 ));
end;


Pra fechar todas as aplicações.

procedure TFormLogin_FrmCliente.SpeedButton2Click(Sender: TObject);
var
  x:integer;
  hnd:Thandle;
begin
  for x := 0 to Listbox1.Count - 1 do
  begin
    hnd := FindWindow(nil,Pchar(ListBox1.Items.Strings[x]));
    if hnd <> 0 then
    if UpperCase(ListBox1.Items.Strings[x]) <> ´SISCLIENTE´   then
    begin
      PostMessage(FindWindow(nil,Pchar(ListBox1.Items.Strings[x])),WM_QUIT,0,0);
      
    end;
  end;
  ListBox1.Clear;
  EnumWindows( @EnumWindowsProc, integer( listBox1 ));
  SpeedButton3.Click;

end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar