Fórum Capturar Caption #184413

26/09/2003

0

Ae galera, blz?
Como eu faço pra capturar o caption de uma janela q esta sendo aberta?
Por exemplo do Internet Explorer ou ICQ?

Vlw!!


Skaarj

Skaarj

Responder

Posts

26/09/2003

Rodrigo_rcp

596 - Exemplo de como pegar o nome de um objeto ou janela Faça um teste com isso. Coloque um Timer, umLabel, dois Edit e um Button. No OnTimer coloque: var p: TPoint; i: THandle; begin GetCursorPos ( p ); i := WindowFromPoint ( p ); Label1.caption := intToStr ( i ); end; No OnClick do botão coloque var i, x: integer; s: array [ 0..2047 ] of char; begin i := strToInt ( Edit1.text ); GetWindowText ( i, s, x ); Edit2.text := s; end; Para isso, crie um formulário pequeno e deixe-o em uma região discreta e passe o mouse sobre os ´componentes´ da calculadora. Vc verá o caption do label se modificar com o Handle do window sob o mouse. Para obter o texto, use esse handle no primeiro edit 1 clique no Botão para pegar o texto e trazê-lo para o edit2.


http://www.lloydsoft.hpg.ig.com.br/


Responder

Gostei + 0

26/09/2003

Rodrigo_rcp

ou

[b:19efa1e5e1]carnette[/b:19efa1e5e1]
Que tal dar um estudada neste exemplo....Já é um bom começo Para listar (pegar) todas janelas abertas, deve-se usar a funcao da API EnumWindows, que usa uma funcao Callback, com dois parametros, um Handle para a janela e um ponteiro. Voce pode usá-la com um códi-go semelhante a este (Este lista as janelas abertas, mesmo invisí-veis, em uma listbox): function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif} var Buffer : Array[0..99] of char; begin GetWindowText(Wnd,Buffer,100); if StrLen(Buffer) <> 0 then Form.ListBox1.Items.Add(StrPas(Buffer)); Result := True; end; procedure TForm1.Button1Click(Sender: TObject); begin EnumWindows(@EnumWindowsProc,LongInt(Self)); end;



Responder

Gostei + 0

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

Aceitar