Como encontrar um filho de um aplicativo win32 não gerenciado pai

Basicamente eu estou procurando um método win32 para invocar em c # para definir o foco para um filho de um aplicativo não gerenciado.

Mas primeiro preciso encontrar o controle do filho, que é o problema. Quaisquer funções úteis do win32 para resolver isso?

Existe uma biblioteca que suporta a enumeração e pesquisa de alças de janela, que está disponível em http://mwinapi.sourceforge.net/

Apenas para que você não tenha que reinventar a roda toda vez;)

Começar com

SystemWindow.AllToplevelWindows 

e, em seguida, apenas desça o seu caminho (olhando para nomes de classs, nomes de processos, títulos, IDs de diálogo, o que for).

Use FindWindowEx para encontrar o Handle da janela que você está procurando. Depois de ter esse identificador, use EnumChildWindows para encontrar o filho correto que você precisa. Há muito código envolvido para eu escrever rapidamente uma amostra, mas há bastante na Web para ajudar.

De Pinvoke.net: http://www.pinvoke.net/default.aspx/user32/EnumChildWindows.html

Você já tentou usar FindWindowEx?