Capturer une fenetre non active

Messages postés
5
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
23 avril 2010
- - Dernière réponse : 16aar
Messages postés
5
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
23 avril 2010
- 23 avril 2010 à 15:03
Bonjour a tous,
j'écris un petit programme qui capture toutes les X millisecondes une partie de l'affichage d'une fenetre ( en l'occurence un navigateur ) afin de faire des traitements dessus.

Mon probleme est le suivant :
tout marche bien lorsque le navigateur est au premier plan.

J'aimerais que cela marche même si le navigateur est en arriere-plan, de facon à ce que le
programme puisse tourner en fond sans pourrir mon affichage.


Savez-vous s'il est possible de faire un paint d'une fenetre d'un processus externe
directement vers une zone mémoires ?

J'ai essayé pas mal de trucs trouvés çà et là sur le net, mais impossible
de faire ce que je veux .

Cordialement
Afficher la suite 

3 réponses

Messages postés
5
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
23 avril 2010
0
Merci
J'ai trouvé le post d'un gars qui dit qu'il est arrivé.

Seulement, ce code est en VB.

Pensez-vous que çà marche ?
Pensez vous que c'est portable vers du C ou du c# ?


http://www.xtremevbtalk.com/showthread.php?t=312702
Commenter la réponse de 16aar
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
13
0
Merci
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr PrintWindow(IntPtr hwnd, IntPtr hDC, uint nFlags);

private Bitmap CaptureWindowPrint(IntPtr hWnd, int targetWidth, int targetHeight)
{
Bitmap memoryImage = new Bitmap(targetWidth, targetHeight);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
IntPtr hDC = memoryGraphics.GetHdc();
PrintWindow(hWnd, hDC, 0);
memoryGraphics.ReleaseHdc();
memoryGraphics.Dispose();
return memoryImage;
}


Ceci doit fonctionner, je pense
Commenter la réponse de leprov
Messages postés
5
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
23 avril 2010
0
Merci
Cool, ca a l'air de marcher assez bien.

Par contre, étrangement ca marche quand je capture le display de Firefox,
mais pas celui d'opera.

Bizarre
Commenter la réponse de 16aar