2009-09-17 5 views
2

J'ai un test qui lance une application et vérifie qu'elle a été lancée via des appels à GetForegroundWindow(). Le test est exécuté sur une machine distante à laquelle nous accédons généralement via un poste de travail distant. Quand nous avons une session rdp ouverte sur la machine, le test se termine et tout va bien. Cependant, une fois le bureau distant fermé, le test échoue car GetForegroundWindow renvoie toujours Null. J'ai vérifié que le bureau actif après que je me déconnecte est toujours 'par défaut', ainsi je suis sûr que je ne cours pas dans le problème this. Des idées sur ce qui pourrait en être la cause?GetForegroundWindow renvoie Null lorsque le bureau distant est déconnecté

Merci à l'avance

+1

Je crains que vous ne rencontriez réellement ce problème (c'est-à-dire Windows Security). Lorsque vous réduisez ou déconnectez votre session RDP, votre session passe en mode sécurisé et certaines API ne fonctionnent pas. Vérifiez ici: http://www.tech-archive.net/Archive/Windows/microsoft.public.windows.terminal_services/2008-11/msg00472.html – Andrey

Répondre

0

Je suppose que GetForegroundWindow avoir des retours, vous avez un moyen de valider que le HWND retourné est de l'application d'intérêt et pas une autre fenêtre.

Dans tous les cas, utilisez EnumWindows pour obtenir toutes les fenêtres à l'écran. Trouvez le HWND qui correspond à l'application que vous recherchez.

Si vous ne disposez pas d'un moyen de valider le HWND, appelez EnumWindows avant de lancer l'application pour obtenir le nombre total de fenêtres à l'écran. Lancez ensuite votre application via votre script d'automatisation. Sondez le nombre de fenêtres via EnumWindows jusqu'à ce que le nombre augmente d'une unité.

0

Si votre ordinateur de bureau à distance est une machine virtuelle, vous pouvez utiliser la commande tscon:

tscon 1 /dest:console où "1" est l'ID de session active.

Cette commande déconnecte le RDP mais envoie la session à la console. Vous pouvez attraper des fenêtres, prendre des captures d'écran, etc ...

Questions connexes