Fórum Problemas com quot;hWndquot; #367990

28/01/2009

0

E aí pessoal....

Seguinte, estou com problemas para capturar a Handle.

Utilizo um programa para capturar a classe, e o caption do componente, quando o componente é um TButton funciona beleza, mas o componente em questão é um TRadioButton. O programa diz que é um TRadioButton, mas quando vou utilizar dessa forma:

var
   hh, hm : hWnd;
begin
  hh := FindWindow(nil,´Caption do Form´);

  if hh <> 0 then
    showmessage(´hh ok´); // Aqui passa, claro!

  hm := FindWindowEx(hh,0,´TRadioButton´,´Eu &aceito os termos do Contrato´);
{ O "&" acima, colocando ou não, não funciona de jeito nenhum }

  if hm <> 0 then
    showmessage(´hm ok´); // NÃO MOSTRA A MENSAGEM :(

{ Não encontrol, quando procuro por TButton ele encontra, não sei mais como fazer, já tentei de tudo, já testei dois programas que captura o caption do componente e a classe, e todos dizem a mesma coisa "TRadioButton" }
end;


Esta Handle vou utilizar num SendMessage()

Agradeço quem puder me dizer algo, já procurei no google e não encontrei nada que me falasse sobre isso, estou usando o Delphi 7, será BUG?


Onjahyr

Onjahyr

Responder

Posts

28/01/2009

Woinch

Acabei de fazer uma aplicação com esse mesmo código que você postou aqui e funcionou perfeitamente.


Responder

Gostei + 0

28/01/2009

Onjahyr

Eu sei que funciona, eu também fiz uma experiência aqui... O problema se trata de capturar da praga do programa, eu capturo que ele é um TRadioButton, e quando vou tentar acionar ele ele não encontra, vou tentar burlar de outra maneira....


Responder

Gostei + 0

29/01/2009

Onjahyr

Vejam o que realmente está ocorrendo (tem uma figura também):

http://www.onjahyr.com.br/

Qualquer ajuda é bem-vinda.


Responder

Gostei + 0

29/01/2009

Woinch

Estranho funcionar com alguns componentes e não funcionar com os demais. Esses comandos utilizam a API do Windows. Difícil ser um bug. Esse executável ´Biblia hábil´ foi você quem criou ou ele não é de sua autoria?
Vou levantar algumas questões que podem ajudar a solucionar o problema:

- Em que linguagem esse executável é?
- Será que a classe do componente se chama realmente TRadioButton?
- Será que o caractere que representa o sublinhado é mesmo o & como no Delphi?
- Não há algum caractere de espaço antes e/ou depois no caption?
- Será que não dá pra usar aqueles programas utilizados por crackers para visualizar o código Hexadecimal ou em Assembly do executável para localizar corretamente a o caption desse TRadioButton?

Espero ter ajudado...


Responder

Gostei + 0

29/01/2009

Onjahyr

Respondendo:

Não, o Bíblia Hábil não é meu não;

1.) Não sei em que linguagem foi feito;
2.) Chama-se TNewRadioButton, mas no código ele muda para TRadioButton (não me pergunte por que :) );
3.) Tem que ter o ´&´ junto senão não funciona;
4.) Se tiver o programa de captura também coloca e aí ficamos sabendo;
5.) De vez em quando uso, mas nem pensei nisso agora;


:lol: [b:19eb34ce0e]Consegui.......[/b:19eb34ce0e]

Seguinte, era como eu estava imaginando mesmo, havia objetos por baixo do TRadioButton, os programas de captura (que quando passa o mouse por cima mostra a classe e o caption não mostrava o que havia embaixo, mesmo deslocando o mouse para fora aos poucos).

Ex.:
Coloque um TPageControl, crie uma nova página e dentro dele coloque um TRadioButton e vai ver que não vai conseguir acessar o TRadioButton, tem que pegar primeiro a Handle do TPageControl, da página criada e em seguida o do TRadioButton, é algo como seguindo os níveis...
A sorte é que instalei o InnoSetup aqui no Delphi7 (só foi desenvolvido para até a versão Delphi 6, mas no readme.txt mostra como instalar no Delphi7), senão não conseguiria descobrir estes detalhes. Tudo por causa que o InnoSetup é aberto, e se for desenvolvido por outro instalador? vai ser difícil saber que há no nível abaixo do componente que se quer acessar...

Até...


Responder

Gostei + 0

29/01/2009

Onjahyr

[b:03cdcda822]CORRIGINDO[/b:03cdcda822]
Uma coisa ruim daqui do fórum é que não se consegue editar o texto, faltou a vírgula e uma palavra:

4.) Se tiver[b:03cdcda822],[/b:03cdcda822] o programa de captura também [b:03cdcda822]mostra[/b:03cdcda822] e aí [b:03cdcda822]saberemos[/b:03cdcda822];

Seguinte, era como eu estava imaginando mesmo, havia objetos por baixo do TRadioButton, os programas de captura (que quando passa o mouse por cima mostra a classe e o caption[b:03cdcda822], mas[/b:03cdcda822] não [b:03cdcda822]mostra[/b:03cdcda822] o que [b:03cdcda822]há[/b:03cdcda822] embaixo, mesmo deslocando o mouse para fora aos poucos).

só isso...


Responder

Gostei + 0

29/01/2009

Woinch

Que bom que conseguiu.
Obrigado pelas informações...
Faz muita falta uma edição mesmo! Pena que 90¬ das pessoas não sabem usar! =/

Abraços!


Responder

Gostei + 0

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

Aceitar