Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Detecter s'il ya un changement dans l'ecran

3 views
Skip to first unread message

nohics nohics

unread,
Dec 16, 2009, 12:13:57 PM12/16/09
to
salut,
je voudrai savoir est ce que c'est possible de détecter s'il y a eu un
changement dans l'image actuel de l'ecran, ou bien il faut a chaque
petite période T prendre une capture d'écran et faire un XOR avec la
prétendante pour savoir si elle a été changé ?
si c'est possible de savoir avec l'API Windows et que quelqu'un sais
comment faire, ça serai sympa de me le dire.
merci bien

marc

unread,
Dec 16, 2009, 1:03:38 PM12/16/09
to

Il n'y a pas de mécanismes pour ça, car ça n'a pas trop de sens.
Exemple, si tu es dans le Notepad ou autre champ de saisie, même sans
rien faire, l'image de l'écran va changer régulièrement à cause du
curseur clignotant...

nohics nohics

unread,
Dec 16, 2009, 6:27:27 PM12/16/09
to

tout d'abord merci pour la reponse.
pour une application remote desktop, je veux envoyer au client
seulement les pixels de la zone qui ont changé dans l'écran, pour cela
il faut déja savoir que l'ecran à changé.
donc pour connaitre si l'image a changé tu me conseille de prendre à
chaque instant T une capture d'écran et faire un XOR avec l'image de
la capture précédente pour détecter s'il ya eu un changement ou pas ?
ou bien il y a une autre methode avec windows qui me permet de
savoir ?

sinon tu n'as pas le code pour prendre la capture d'ecran en utilisant
windows api, stp ?

merci bien

Company

unread,
Dec 17, 2009, 6:29:55 AM12/17/09
to
Le 17/12/2009, nohics nohics a supposᅵ :
> On 16 dᅵc, 19:03, marc <marc.tes...@caramail.com> wrote:

>> On 16 dᅵc, 18:13, nohics nohics <noh...@gmail.com> wrote:
>>
>>> salut,
>>> je voudrai savoir est ce que c'est possible de dᅵtecter s'il y a eu un

>>> changement dans l'image actuel de l'ecran, ou bien il faut a chaque
>>> petite pᅵriode T prendre une capture d'ᅵcran et faire un XOR avec la
>>> prᅵtendante pour savoir si elle a ᅵtᅵ changᅵ ?

>>> si c'est possible de savoir avec l'API Windows et que quelqu'un sais
>>> comment faire, ᅵa serai sympa de me le dire.
>>
>> Il n'y a pas de mᅵcanismes pour ᅵa, car ᅵa n'a pas trop de sens.
>> Exemple, si tu es dans le Notepad ou autre champ de saisie, mᅵme sans
>> rien faire, l'image de l'ᅵcran va changer rᅵguliᅵrement ᅵ cause du

>> curseur clignotant...
>
> tout d'abord merci pour la reponse.
> pour une application remote desktop, je veux envoyer au client
> seulement les pixels de la zone qui ont changᅵ dans l'ᅵcran, pour cela
> il faut dᅵja savoir que l'ecran ᅵ changᅵ.
> donc pour connaitre si l'image a changᅵ tu me conseille de prendre ᅵ
> chaque instant T une capture d'ᅵcran et faire un XOR avec l'image de
> la capture prᅵcᅵdente pour dᅵtecter s'il ya eu un changement ou pas ?

> ou bien il y a une autre methode avec windows qui me permet de
> savoir ?
>
> sinon tu n'as pas le code pour prendre la capture d'ecran en utilisant
> windows api, stp ?
>
> merci bien

Avec les MFC :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample/html/vcsamDllScreenCapSample.asp


Company

unread,
Dec 17, 2009, 6:31:54 AM12/17/09
to
>> sinon tu n'as pas le code pour prendre la capture d'ecran en utilisant
>> windows api, stp ?
>>

Voir aussi : http://www.codeguru.com/bitmap/WindowBitmap.html


Christian ASTOR

unread,
Dec 17, 2009, 7:00:18 AM12/17/09
to
On 17 déc, 00:27, nohics nohics <noh...@gmail.com> wrote:

> sinon tu n'as pas le code pour prendre la capture d'ecran en utilisant
> windows api, stp ?

Tu fais juste un BitBlt() (sur GetDesktopWindow() par ex) =>

HBITMAP GetBitmapFromWindow(HWND hWnd)
{
HDC hDC, hDCMem;
HBITMAP hBitmapReturn, hBitmapOld;
RECT rect;
GetWindowRect(hWnd, &rect);
hDC = GetWindowDC(hWnd);
hDCMem = CreateCompatibleDC(hDC);
hBitmapReturn = CreateCompatibleBitmap(hDC, rect.right - rect.left,
rect.bottom - rect.top);
hBitmapOld = (HBITMAP)SelectObject(hDCMem, hBitmapReturn);
BitBlt(hDCMem, 0, 0, rect.right - rect.left, rect.bottom - rect.top,
hDC, 0, 0, SRCCOPY);
SelectObject(hDCMem, hBitmapOld);
DeleteDC(hDCMem);
ReleaseDC(hWnd, hDC);
return hBitmapReturn;
}

nohics nohics

unread,
Dec 18, 2009, 4:40:08 PM12/18/09
to
On 17 déc, 12:29, Company <comp...@company.com> wrote:
> Le 17/12/2009, nohics nohics a supposé :
>
>
>
> > On 16 déc, 19:03, marc <marc.tes...@caramail.com> wrote:

> >> On 16 déc, 18:13, nohics nohics <noh...@gmail.com> wrote:
>
> >>> salut,
> >>> je voudrai savoir est ce que c'est possible de détecter s'il y a eu un

> >>> changement dans l'image actuel de l'ecran, ou bien il faut a chaque
> >>> petite période T prendre une capture d'écran et faire un XOR avec la
> >>> prétendante pour savoir si elle a été changé ?

> >>> si c'est possible de savoir avec l'API Windows et que quelqu'un sais
> >>> comment faire, ça serai sympa de me le dire.
>
> >> Il n'y a pas de mécanismes pour ça, car ça n'a pas trop de sens.
> >> Exemple, si tu es dans le Notepad ou autre champ de saisie, même sans
> >> rien faire, l'image de l'écran va changer régulièrement à cause du

> >> curseur clignotant...
>
> > tout d'abord merci pour la reponse.
> > pour une application remote desktop, je veux envoyer au client
> > seulement les pixels de la zone qui ont changé dans l'écran, pour cela
> > il faut déja savoir que l'ecran à changé.
> > donc pour connaitre si l'image a changé tu me conseille de prendre à
> > chaque instant T une capture d'écran et faire un XOR avec l'image de
> > la capture précédente pour détecter s'il ya eu un changement ou pas ?

> > ou bien il y a une autre methode avec windows qui me permet de
> > savoir ?
>
> > sinon tu n'as pas le code pour prendre la capture d'ecran en utilisant
> > windows api, stp ?
>
> > merci bien
>
> Avec les MFC :
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsa...

j'ai regardé rapidement ce lien mais je n'ai vraiment rien compris :s
je dois dire que je n'ai jamais utilisé les MFC. ya il quelque chose a
live avant pour comprendre ce qui est expliqué dans ce lien ? et est
ce que ça va me permetre de savoir s'il ya eu un changement dans
l'image actuel de l'ecran ?

Christian ASTOR

unread,
Dec 21, 2009, 8:04:41 AM12/21/09
to
On 18 déc, 22:40, nohics nohics <noh...@gmail.com> wrote:
> j'ai regardé rapidement ce lien mais je n'ai vraiment rien compris :s
> je dois dire que je n'ai jamais utilisé les MFC. ya il quelque chose a
> live avant pour comprendre ce qui est expliqué dans ce lien ? et est
> ce que ça va me permetre de savoir s'il ya eu un changement dans
> l'image actuel de l'ecran ?

Pas besoin des MFC , cf. ex avec BitBlt() ci-dessous pour récupérer un
HBITMAP de l'écran.

Sébastien

unread,
Dec 31, 2009, 11:30:31 AM12/31/09
to

mais aussi on peut voir le changement avec la taille précis de l'image
ex:

tu fais une capture de l'ecrant il faut 1,512 mo
et t'en refais une nouvelle et en fonction des couleur ...... etc la
taille de l'image change ex : avant 1,512 et après 1,549
bon j'ai 14 ans mais je vois comme ça ! XD

0 new messages