2010-08-11 7 views
0

J'ai besoin d'obtenir Image of IvideoWindow caché ("ActiveMovie Window"), qui montre l'aperçu webcam. Pour autant que je sache, l'aperçu n'est pas en superposition, il n'a pas de fonctions de superposition, je peux utiliser printscreen dessus, mais j'ai besoin de fenêtre pour rester caché tout le temps, donc ça ne va pas aider. Aussi la fonction api PrintWindow() me renvoie l'écran noir.Soyez caché IvideoWindow Image

Langages de programmation: C#, c, C++, java, pascal.

Système d'exploitation: Windows XP.

Des idées?

+0

La légende de la fenêtre, la bordure, etc. sont-elles correctes lorsque vous ne spécifiez pas 'PW_CLIENTONLY' dans nFlags avec 'PrintWindow'? –

+0

Salut Sertaz, j'ai essayé avec et sans PW_CLIENTONLY toujours le même écran noir. – bikt

+0

Je pense que j'ai fait l'hypothèse incorrecte que 'IVideoWindow' serait une fenêtre de haut niveau ... Toutes les applications/fenêtres ne traitent pas WM_PRINTCLIENT, regardez l'article suivant qui sous-classe une fenêtre (in/out of process) pour le faire gérer le message. (http://www.fengyuan.com/article/wmprint.html) Mais même si cela fonctionne ce qui se passera quand vous avez une vidéo superposée, à mon humble avis, ce n'est pas la bonne approche .. (BTW si vous préférez '@' à le nom de la personne lorsque vous répondez à un commentaire, la personne est avertie de votre commentaire). –

Répondre

0

L'astuce consiste à montrer la fenêtre mais à l'extérieur du bureau. Définissez la position gauche sur desktop.width + 1 (not screen.width, car les utilisateurs peuvent avoir plusieurs écrans), puis rendez-le visible. De cette façon, les fonctions normales comme le travail sur écran d'impression et les utilisateurs ne le verront toujours pas.