Ir para conteúdo

Arquivado

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

Paulo Correia

Localizar itens de um programa em execução usando a API Findwindow VB6

Recommended Posts

Estou quebrando a cabeça para fazer com que o VB6 preencha automáticamente dois campos de Texto.

Como faço que o VB localize todos os campos filho se eu informar o Pai ?

Utilizando o Spy++ percebi que a única informação que é sempre identica e única para cada um dos campos de Texto são os Styles principalmente o 1o. que é numérico.

Existe alguma função "Find Style" que quando eu informasse o 1o. me retornasse o nome e o handle ?

Fiz até um outro programa em VB6 para testar que tem um frame (Pai) e dois Textos (Filhos) e ao usar o FindoWindow ele só encontra o 2o. filho (segunda caixa de textos).

Como mando um Shift+TAB via Sendmessage ?

Segue em Anexo o programinha para Teste e o código fonte do VB6 que estou usando.

Agradeço desde já qualquer informação, pista ou solução

Paulo

http://rapidshare.com/files/107691648/Teste.zip.html

http://rapidshare.com/files/107691799/vbcode.zip.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vindo ao forum ^_^

Pra você envia um caracter pra um controle com foco você usa

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const VK_LSHIFT = &HA0
Const VK_TAB = &H9
'depois em algum evento

keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0
'eu consegui envia o TAB

Consegui fazer enviar só o TAB, coloquei VK_TAB Or VK_LSHIFT, mas não deu.

 

 

Uma outra coisa que acho que ira ajudá-lo é a FindWindowEx

Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

 

 

· hwndParent

Identifies the parent window whose child windows are to be searched.

If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop.

 

· hwndChildAfter

Identifies a child window. The search begins with the next child window in the Z order. hwndChildAfter must be a direct child window of hwndParent, not just a descendant window.

If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.

Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level windows.

 

· lpszClass

Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpszClass; the high-order word must be zero.

 

· lpszWindow

Points to a null-terminated string that specifies the window name (the window’s title). If this parameter is NULL, all window names match.

Ficaria algo assim:

handle_filho = FindWindowEx(handle_pai, ByVal 0&, "EDIT", vbNullString)
Mas não consegui fazer funcionar, me retorna handle 0..... li no Help do Builder C++ que não funciona em WinNT...

 

Bem cara.. qualque coisa volta ae...

Espero que te ajude em algo o que eu postei ae... qualquer duvida volta aqui no fórum.

 

Flw

 

[]'s

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.