Manipulação de objetos, FindWindow, FindObjetcs (namespace APIWrapper)

07/07/2013

0

Olá,

Estou necessitando conhecer mais sobre como manipular janelas e objetos de janelas (que não foram desenvolvidas por mim).

Minha intenção é criar uma aplicação que possa ser customizada depois de compilada e vendida. Eu desejo ter um módulo que possa "setar" valores e configurar ações automáticas e para além disso o usuário possa configurar estas ações.

Dito isso fiz algumas buscas e achei este programa http://www.codeproject.com/Articles/34981/FindWindow .

Ele me dá parte da funcionalidade e eu gostaria de estender as funções dele.

Eu desejo manter parte da interface dele e incluir na função "Drag n Drop" uma "varredura" de todos os objetos da janela selecionada e listas este objetos.

Esta listagem eu vou usar para filtrar no meu programa quais controles da container vou manipular.

Então preciso listar o class name, tipo de objeto, label/caption do objeto, etc.

Como eu devo proceder?

Obrigado.

Ferrari

PS: Este link que passei tem o fonte do programa citado.
Cleber Trombini

Cleber Trombini

Responder

Posts

08/07/2013

Alexandre Machado

Ferrari,

Se entendi bem, voce que listar os objetos de uma janela e então pegar algumas propriedades destes objetos. Ser for isso, o codigo abaixo pode te ajudar:

coloquei duas formar de pegar o valor de uma propriedade:
O metodo 1 simplismente pega o valor, mas se o objeto não possuir esta propriedade vai dar erro em tempo de execução.
o metodo 2 varre todas as propriedade para verificar se a propriedade que voce quer existe antes de tentar pegar seu valor.

var listaObjetos = this.Controls;
foreach (var item in listaObjetos)
{
// metodo 1
var nome = item.GetType().GetProperty("Name").GetValue(item, null);

// metodo 2
var propriedades = item.GetType().GetProperties();
for (int i = 0; i < propriedades.Length; i++)
{
var asdf = item.GetType().GetProperties().GetValue(i);
if (((System.Reflection.PropertyInfo)asdf).Name.Equals("Name"))
{
var nome2 = item.GetType().GetProperty("Name").GetValue(item, null);
}
}
}


espero ter ajudado.
Responder

09/07/2013

Cleber Trombini

Alexandre,

Vou testar já neste programa que passei o link. Aproveitando que o mesmo tem o fonte aberto.

Aliás, vc chegou a dar uma olhada neste programa? Acha que com o SPY++ eu teria mais informação?

Obrigado.

Ferrari
Responder

14/10/2013

José

E ai amigo Ferrari, conseguiu solucionar sua duvida ou teve algum avanço ?
Responder

07/12/2013

Cleber Trombini

Desculpe amigos. Não consegui avançar com o exemplo do amigo acima.

Infelizmente, mas, ainda quero tentar isso.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar