Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pseudalopex

Variaveis

Recommended Posts

O HWnd é do tipo Handle, ou seja, identificador da janela, ele é um número inteiro maior que zero, e é mais utilizado pelo Windows para identificar qual foi a janela que disparou uma determinada mensagem, para pegar o n° em string, basta converter, IntToStr(HWnd)

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi, deu certo aqui. Mas esse numero muda ou é sempre o mesmo.

 

E outra dúvida. O que eu preciso realmente é saber qual o Handle da Janela.

Tenho esse código que minimiza todas as janelas. E preciso saber o Handle das Janelas.

 

procedure TForm1.Button6Click(Sender: TObject);var MyWH,HW:HWnd;beginHW:=handle;MyWH := FindWindow(nil, 'Minha aplicação'); while HW > 0 do beginif IsWindowVisible(HW) then Postmessage(HW,WM_SYSCOMMAND,SC_MINIMIZE,0);HW:=GetnextWindow(HW,GW_HWNDNEXT);end;if IsWindowVisible(MyWH) then Postmessage(MyWH,WM_SYSCOMMAND,SC_RESTORE,0);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o número sempre muda..Para saber o handle neste seu fonte veja dentro do seu while no momento que ele faz o comando: HW:=GetnextWindow(HW,GW_HWNDNEXT); ele atribui ao campo HW o handle da janela...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo mas ele joga apenas o Numero. E na verdade não é o numero que eu preciso.

 

Vou ver se consigo explicar melhor.

 

procedure TForm1.Button1Click(Sender: TObject);begin { Verifica o Delphi } if FindWindow('TAppBuilder', nil) > 0 then ShowMessage('O Delphi está aberto') else ShowMessage('O Delphi NÃO está aberto'); { Verifica o Word } if FindWindow('OpusApp', nil) > 0 then ShowMessage('O Word está aberto') else ShowMessage('O Word NÃO está aberto'); { Verifica o Excell } if FindWindow('XLMAIN', nil) > 0 then ShowMessage('O Excell está aberto') else ShowMessage('O Excell NÃO está aberto');end;

Esse OpusApp representa o Handle do Word.

É isso que eu preciso saber.

Com aquele código de cima tenho como saber esses valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pequeno exemplo pegando o nome do caption das janelas

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	H: HWND;	nomeJanela: Array[0..255] of Char;beginH:=Handle;while H > 0 do	begin	if IsWindowVisible(H) then		begin		GetWindowText(H,nomeJanela,SizeOf(nomeJanela));		if nomeJanela <> '' then			ShowMessage('Nome: ' + nomeJanela);		end;	H:=GetNextWindow(H,GW_HWNDNEXT);	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, aproveitando o mesmo tópico.Como eu faço para fechar algum aplicativo depois que tenho o nome dele.Qual o comando mais adequado?Dei uma busca mas achei mais de uma forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.