ABRIR SISTEMA COM SENHA ATRAVES DE OUTRO EXECUTAVE
Boa noite, Marcelo.
Como eu não estava muito afim de trabalhar hoje, fiquei pesquisando sobre o teu problema e encontrei uma solução. Não é a melhor técnica do mundo, mas resolve o teu caso.
Vou te explicar como fazê-la funcionar (e configurar pro teu software), mas o programa (anexo) está com o código todo comentado.
Obs.: somente é necessário fazer o procedimento abaixo UMA vez. O objetivo é anotar as classes de componentes geradas pelo compilador do programa.
As classes não mudam para o mesmo programa.
Obs2: por algum motivo, não consegui ler o conteudo de um textbox, embora o código pareça correto. Vou dar uma olhada nisso amanha.
Para descobrir qual handle corresponde ao textbox que tu quer, envie uma letra e veja qual mudou o conteudo na tela :D
Obs3: a ORDEM dos textbox nao é alterada a cada leitura da janela.
Como não há como identificá-los, sugiro salvar a ordem dos textbox e usa-los assim.
Se o Textbox1 é a senha, ele sempre será a senha (naquele programa, obvio)
Obs4: No caso do botao, há como identificá-lo pelo texto.
Ou seja, se tu quiser clicar no botao [Ô]SAIR[Ô], basta ler todos botões e achar o que possui esse texto.
-Anote o titulo da janela para qual tu quer enviar o texto. O tÃtulo da janela é mostrado no topo dela. Salve esse nome em algum lugar.
-Abra o programa Spy++ (ele é instalado junto com o Visual Studio)
-Aperte CTRL+F para abrir o buscador de janelas
-Clique no icone que parece um [Ô]alvo[Ô] e arraste ele até o textbox do programa.
-Solte o click e as propriedades do textbox aparecerão. Clique em [Ô]OK[Ô]
-A classe do objeto selecionado será mostrada na aba Class. Anote o nome da classe em algum lugar, para usar depois.
-Repita o procedimento acima, selecionando um botão
-No fim, tu terá os 3 dados necessários para fazer a brincadeira funcionar. Então, pode fechar o Spy++
-Execute o programa que eu fiz e insira os dados. E aperte o botão magico :D
-Selecione um textbox da lista, coloca o que tu quer que seja enviado e teste \o/
-Seleciona um botao e faça o teste do click
Como eu não estava muito afim de trabalhar hoje, fiquei pesquisando sobre o teu problema e encontrei uma solução. Não é a melhor técnica do mundo, mas resolve o teu caso.
Vou te explicar como fazê-la funcionar (e configurar pro teu software), mas o programa (anexo) está com o código todo comentado.
Obs.: somente é necessário fazer o procedimento abaixo UMA vez. O objetivo é anotar as classes de componentes geradas pelo compilador do programa.
As classes não mudam para o mesmo programa.
Obs2: por algum motivo, não consegui ler o conteudo de um textbox, embora o código pareça correto. Vou dar uma olhada nisso amanha.
Para descobrir qual handle corresponde ao textbox que tu quer, envie uma letra e veja qual mudou o conteudo na tela :D
Obs3: a ORDEM dos textbox nao é alterada a cada leitura da janela.
Como não há como identificá-los, sugiro salvar a ordem dos textbox e usa-los assim.
Se o Textbox1 é a senha, ele sempre será a senha (naquele programa, obvio)
Obs4: No caso do botao, há como identificá-lo pelo texto.
Ou seja, se tu quiser clicar no botao [Ô]SAIR[Ô], basta ler todos botões e achar o que possui esse texto.
-Anote o titulo da janela para qual tu quer enviar o texto. O tÃtulo da janela é mostrado no topo dela. Salve esse nome em algum lugar.
-Abra o programa Spy++ (ele é instalado junto com o Visual Studio)
-Aperte CTRL+F para abrir o buscador de janelas
-Clique no icone que parece um [Ô]alvo[Ô] e arraste ele até o textbox do programa.
-Solte o click e as propriedades do textbox aparecerão. Clique em [Ô]OK[Ô]
-A classe do objeto selecionado será mostrada na aba Class. Anote o nome da classe em algum lugar, para usar depois.
-Repita o procedimento acima, selecionando um botão
-No fim, tu terá os 3 dados necessários para fazer a brincadeira funcionar. Então, pode fechar o Spy++
-Execute o programa que eu fiz e insira os dados. E aperte o botão magico :D
-Selecione um textbox da lista, coloca o que tu quer que seja enviado e teste \o/
-Seleciona um botao e faça o teste do click
Amigo, acabei de testar! Perfeito! Vou estudar os códigos!
IncrÃvel! Muito obrigado meu amigo!
IncrÃvel! Muito obrigado meu amigo!
Amigo só mais uma dúvida:
Não usou api?
Qual versão do VS você criou o programa?
POis aqui, quando fui abrir os fontes, ele disse
que teria que converter para minha versão, mas funcionou
perfeito!!
O meu VS é o 2010.
Não usou api?
Qual versão do VS você criou o programa?
POis aqui, quando fui abrir os fontes, ele disse
que teria que converter para minha versão, mas funcionou
perfeito!!
O meu VS é o 2010.
+Eu criei o programa no VS 2008. Só tenho ele instalado no meu notebook.
+Usei várias API do Windows.
Utilizar uma API significa que tu utilizará uma função ou sub nativa do windows, [Ô]ignorando[Ô] as do compilador.
Todas funções abaixo (declaradas nas classe [Ô]JanelasExternas.vb[Ô]) são API. Como tu pode ver, eu informo a DLL do Windows que contem elas (user32.dll) para poder acessá-las:
-FindWindow
-SendMessage
-GetClassName
-GetWindowText
-GetWindowTextLength
-EnumChildWindows
+Usei várias API do Windows.
Utilizar uma API significa que tu utilizará uma função ou sub nativa do windows, [Ô]ignorando[Ô] as do compilador.
Todas funções abaixo (declaradas nas classe [Ô]JanelasExternas.vb[Ô]) são API. Como tu pode ver, eu informo a DLL do Windows que contem elas (user32.dll) para poder acessá-las:
-FindWindow
-SendMessage
-GetClassName
-GetWindowText
-GetWindowTextLength
-EnumChildWindows
Muito bom meu amigo!
Me ajudou muito, pois é exatamante
o que eu precisava!!
Muito obrigado mesmo pela disposição!
Agora vou fazer alguma modificações e aplicar
para o sistema!
Muito obrigado! (Nçai sei como por o tópico como resolvido..)
Me ajudou muito, pois é exatamante
o que eu precisava!!
Muito obrigado mesmo pela disposição!
Agora vou fazer alguma modificações e aplicar
para o sistema!
Muito obrigado! (Nçai sei como por o tópico como resolvido..)
Que bom que lhe ajudei, mestre!
Em cima do tópico, tem um link [Ô]Encerrar Topico[Ô]. Basta clicar nele.
Abraço!
Em cima do tópico, tem um link [Ô]Encerrar Topico[Ô]. Basta clicar nele.
Abraço!
Tópico encerrado , respostas não são mais permitidas