| Цитата(_hunter @ 17.9.2004, 19:21) | | я же тебе говорил -- смотри на оверлеи ( попробуй сделать ПринтСкрин в том же BSPlayer' e -- ни фига не скопируеш ) |
Ни фига не скопируешь? Попробуй отключить функции ускорения графики - и все прекрасно скопится ;) Это кстати, работает даже для доморощенных реализаций оконной 3D-графики без WM_PRINTWINDOW
Так что действительно, надо ставить клеймо - что-то вроде перечеркнутого рисунка и надписи ядовитым голубым цветом "UNREGISTERED" посередки. 
Вообще, как обычно делается сдирание экрана? Открывается дексриптор декстопа: | Код | HDC hdcDesktop = CreateDC("DISPLAY", NULL, NULL, NULL); // как вариант - GetWindowDC(NULL); HDC hdcCapture = CreateCompatibleDC(hdcDesktop); HBMP hbmpCapture = CreateCompatibleBitmap(hdcDesktop, GetDeviceCaps(hdcDesktop, HORZRES), GetDeviceCaps(hdcDesktop, VERTRES)); SelectObject(hdcCapture, hbmpCapture); BitBlt(hdcCapture, 0, 0, GetDeviceCaps(hdcDesktop, HORZRES), GetDeviceCaps(hdcDesktop, VERTRES), hdcDesktop, 0, 0, SRCCOPY));
| .... вуаля, картинка декстопа (без мыши ессесно) у нас в кармане...
Надо проанализировать этот код, и найти слабое место...
Имхо, не очень надежный конечно способ защититься от сдирания картинки для другого потока - создать свой декстоп (CreateWindowStation(), CreateDesktop(), OpenDesktop, AssignDesktop()) - чтобы когда граббер сдирал декстоп, то сдирал свой декстоп, а наш - хи-хи, сидит на другом декстопе с другим контекстом правда, этот метод сработает только для NT-систем.... |