Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Detecter s'il ya un changement dans l'ecran

8 réponses
Avatar
nohics nohics
salut,
je voudrai savoir est ce que c'est possible de d=E9tecter s'il y a eu un
changement dans l'image actuel de l'ecran, ou bien il faut a chaque
petite p=E9riode T prendre une capture d'=E9cran et faire un XOR avec la
pr=E9tendante pour savoir si elle a =E9t=E9 chang=E9 ?
si c'est possible de savoir avec l'API Windows et que quelqu'un sais
comment faire, =E7a serai sympa de me le dire.
merci bien

8 réponses

Avatar
marc
On 16 déc, 18:13, nohics nohics 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...
Avatar
nohics nohics
On 16 déc, 19:03, marc wrote:
On 16 déc, 18:13, nohics nohics wrote:

> salut,
> je voudrai savoir est ce que c'est possible de détecter s'il y a eu u n
> 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 l a
> 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 d u
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
Avatar
Company
Le 17/12/2009, nohics nohics a supposé :
On 16 déc, 19:03, marc wrote:
On 16 déc, 18:13, nohics nohics 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
Avatar
Company
>> 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
Avatar
Christian ASTOR
On 17 déc, 00:27, nohics nohics 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;
}
Avatar
nohics nohics
On 17 déc, 12:29, Company wrote:
Le 17/12/2009, nohics nohics a supposé :



> On 16 déc, 19:03, marc wrote:
>> On 16 déc, 18:13, nohics nohics 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 san s
>> rien faire, l'image de l'écran va changer régulièrement à caus e 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 c ela
> 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 p as ?
> 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 ?
Avatar
Christian ASTOR
On 18 déc, 22:40, nohics nohics 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.
Avatar
Sébastien
On 16 déc, 19:13, nohics nohics 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.
merci bien



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