Rechercher : dans
Par :

[C++] Récupérer la valeur de l'écran

Dernière réponse le 3 jun 2009 à 08:52:06 KX, le 29 mai 2009 à 10:19:28 
 Signaler ce message aux modérateurs

Bonjour,

Je voudrais faire un programme en C++ sous Windows qui me permette de faire comme une impression écran, c'est à dire récupérer un tableau de pixel, pour que je puisse le traiter après...

Problème : je n'ai aucune idée de comment récupérer ce tableau de pixel !

PS. Ce que je voudrais au final c'est faire des clichés successifs et optimiser la taille de la "vidéo", non pas pour l'utilité du programme, mais par simple défi algorithmique...

Tout aide est la bienvenue. Merci ! La confiance n'exclut pas le contrôle 

Configuration: Windows XP / Mozilla Firefox 3.0
Dev-C++ 4.9 / Dev-Pascal 1.9.2 / Caml Light 0.74

Meilleures réponses pour « [C++] Récupérer la valeur de l'écran » dans :
[Multimédia] Faire une capture vidéo de l'écran VoirIl est possible de faire des vidéos de ce qui se passe à l'écran. C'est utile pour faire des démonstrations de logiciels, des aides ou des tutoriels. Les logiciels Il y a pour cela 2 logiciels gratuits: CamStudio et Wink. Ces logiciels ne sont...
Quel écran LCD acheter pour votre ordinateur ? VoirA l’heure où les vieux écrans CRT sont remisés au placard, ce sont les écrans plats LCD qui envahissent nos bureaux. Mais comment choisir ? Quelle taille ? Quelle résolution ? Quelques conseils pour acheter le bon écran. Quel écran pour...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Servlets - Gestion des formulaires VoirIntroduction aux formulaires Les servlets rendent très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML, c'est-à-dire une interface graphique permettant à l'utilisateur de saisir des données. Grâce à la balise...

1

Char Snipeur, le 29 mai 2009 à 11:15:39

Salut.
Là je pense qu'il faut rentrer dans les méandres de windows.
Je ne sais pas si on peut récupérer facilement des video, car si tu fait une impression écran, bien souvent il n'y a pas la vidéo dessus. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

2

KX, le 29 mai 2009 à 11:19:02

En fait je ne veux pas utiliser le bouton impression écran déjà existant, mais plutôt le simuler, récupérer la sortie écran comme si c'était un fichier... La confiance n'exclut pas le contrôle 

Répondre à KX

3

Char Snipeur, le 29 mai 2009 à 11:22:48

J'ai bien compris. Je te disait juste que ça ne doit pas être si facile que ça. Il est possible que la vidéo passe en grande partie par la carte vidéo, et donc que ça soit plus dur à récupérer. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

4

François2, le 29 mai 2009 à 15:15:01

Ca se fait en 30 secondes avec l'api Win32 (qui fait tout sous Windows, c'est le but des fcts exportées)
Donc demander sur le groupe Pro fr Win32 http://tinyurl.com/cvd7wv
où le code a été donné... des centaines de fois ( en C et C++)

Répondre à François2

5

michael, le 29 mai 2009 à 15:19:03

Je dirais des milliers de fois même, vu que la hardcopy est une FAQ Winapi depuis la sortie de Windows 95 (ça date...)

Répondre à michael

6

Char Snipeur, le 29 mai 2009 à 15:26:57

Pour une fois, je pense que l'intervention du gros lourd de service cette fois ci incarné sous le pseudonyme
François2 est bien placé. Par contre, ça manque toujours autant d'intéret.
J'ai cliqué et fait une recherche "capture ecran" et j'ai trouvé ça :

Pour le capturer tu fais juste un BitBlt() dans un DC compatible après
avoir récupéré ses dimensions.
Un truc comme ça :

nX = GetSystemMetrics( SM_CXSCREEN );
nY = GetSystemMetrics( SM_CYSCREEN );
hDCScreen = GetDC(NULL);
hDCMem = CreateCompatibleDC(hDCScreen);
hBitmap=CreateCompatibleBitmap(hDCScreen, nX, nY);
hBitmapOld = SelectObject(hDCMem, hBitmap);
BitBlt( hDCMem, 0,0, nX,nY, hDCScreen, 0, 0 , SRCCOPY);
SelectObject(hDCMem, hBitmapOld);
DeleteObject( hBitmap );
DeleteDC( hDCMem );
ReleaseDC( NULL, hDCMem ); 

Du charabia pour moi. Donc maintenant si M. le gros malin Win32 pouvait nous dire un peu à quoi servent ces différentes instructions. Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur

Répondre à Char Snipeur

7

carly31, le 2 jun 2009 à 18:49:42

> Du charabia pour moi.

Ca fait peur de lire de telles remarques.
On dirait un gosse de 15 ans
Achète "Windows pour les nuls" car, là, c'est grave...
Et comme on t'a dit, va demander sur le réseau Pro où ce code (qui n'est pas la bonne méthode en plus) est un code de débutant...

Répondre à carly31

8

 Char Snipeur, le 3 jun 2009 à 08:52:06
  • +1

Code trouver pourtant sur ton super lien de pro !
C'est bien remarque, tu descend en flèche le site promu depuis si longtemps avec tant d'amour...
Et si tu es si malin, mets donc la solution, comment tu l'a trouver et explique un peu au lieu de tout prendre de haut.
Car si tu as fait preuve de ton arrogance et de ta condescendance, tu n'as en rien fait preuve de ta connaissance et de ta compétence. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur