Controlar janelas do sistema operacional

Olá pessoal. Tenho um robô que navega através de uma janela de Citrix, o problema é que algumas vezes o client do Citrix fecha a janela, e por consequencia o robô se perde e “morre”. Alguém saberia me informar se existe alguma maneira de monitorar as janelas do sistema operacional??? Por exemplo, saber se determinada janela está aberta no momento ou quais aplicações o sistema operacional está rodando no momento?

Obrigado pela ajuda!

Bom pessoal, consegui resolver meu problema usando jni e C. É mais simples do que parece. Pra quem tiver interesse, seguem alguns links abaixo com toda a explicação que precisei!

Win32 API
Tutorial JNI
Pra quem não conhece C é um bom começo
Site da msdn

É isso galera. Um abraço!