GARANTIR DESCONTO

Fórum Exibir o caption do form #274104

26/03/2005

0

Gostaria de fazer um aplicativo que me mostrasse o que está escrito na barra de titulo de uma outra aplicação. Como fazer essa captura?

Exemplo: O que está parecendo na barra de titulo do meu IE agora é o seguinte:

´Fórum DevMedia :: Novo Tópico - Microsoft Internet Explorer´

Gostaria de exibir isto num label da minha aplicação, há como fazer?

Obrigado


Fernando Lempê

Fernando Lempê

Responder

Posts

26/03/2005

Raserafim

fernando,
ainda não tentei fazer isto, mas posso te adiantar que vc deve conseguir através do comando GetWindowText. Esta função retorna o caption de qualquer tipo de componente que tenha um handle, ou seja qualquer componente estilo janela que seja gerenciado pelo windows, é o caso do form, de alguns botões, etc..
esta função pede como parâmetro o handle da janela que vc quer ver o caption (aí vc vai ter q dá um jeito pra saber qual é o handle), e mais 2 parâmetros.
E se vc quser alterar o caption de qualquer janela pelo seu programa é só usar SetWindowText (Handle, ´caption q vc quer´). onde tem Handle vc substitui pelo Handle da janela q vc quer alterar.


Responder

Gostei + 0

28/03/2005

Marcelo Saviski

Faça um teste, coloque um Timer, Interval = 100

no OnTimer:

var
  H: THandle;
  Texto: array[0..255] of Char;
begin
  with Mouse.CursorPos do
    H := WindowFromPoint(X, Y);  
  GetWindowText(H, Texto, SizeOf(Texto));
  Label1.caption := Texto;
end;


Isso deve mostrar em um labelo texto da janela aonde o cursor do mouse está.


function GetWindows(Handle: HWND; Info: Pointer): BOOL; stdcall;
var
  Texto: array[0..255] of Char;
begin
  Result := True;
  GetWindowText(H, Texto, SizeOf(Texto));
  Memo1.Lines.Add(Texto);
end;


Esse outro deve adicionar em um memo o caption de todas as janelas ativas, para exibir, chame:

Memo1.Lines.Clear;
EnumWindows(@GetWindows, nil);

[size=10:762819d872][url=http://www.delphi-central.com/enum.aspx]Fonte.[/url][/size:762819d872]

Ou para exibir o texto da janela ativa, de uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=49294&highlight=getwindowtext]nesse outro tópico[/url]


Responder

Gostei + 0

28/03/2005

Fernando Lempê

Obrigado, as dicas foram de grande proveito para mim, porém eu queria o texto de uma janela específica, uma janela que eu escolhesse. Como seria?


Responder

Gostei + 0

28/03/2005

Rômulo Barros

[quote:012343b3ce=´Fernando Lempê´]Obrigado, as dicas foram de grande proveito para mim, porém eu queria o texto de uma janela específica, uma janela que eu escolhesse. Como seria?[/quote:012343b3ce]

Como vc escolheria? :?: :?: :?:


Responder

Gostei + 0

29/03/2005

Fernando Lempê

No caso, se eu quisesse que ele me mostrasse o caption do IE, como faria? Ou o caption do Word? eu entendi que preciso ter o handle da aplicação para meu programa saber de quem ele buscará o caption.
Seria possível?


Responder

Gostei + 0

06/04/2005

Fernando Lempê

Finalmente, apos adaptações e testes consegui o que estava procurando utilizando tambem a ajuda dos amigos do forum.

procedure TForm1.Button1Click(Sender: TObject);
var
  H: HWND;
  WindowName: Array[0..255] of Char;
begin
  H :=FindWindow(´nome do programa´,nil);
  GetWindowText(H, WindowName, SizeOf(WindowName));
  label1.Caption := ´Nome-> ´+WindowName;
end;


O nome do programa pode ser obtido através do aplicativo WinSight32.


Responder

Gostei + 0

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

Aceitar