Здравствуйте, mOzG573, Вы писали:
OG> invoke GetDC,windhand
OG> mov hDC,eax
OG> invoke CreateCompatibleDC,hDC
OG> mov hMemDC,eax
OG> invoke CreateCompatibleBitmap,hDC,1024,768
OG> mov hBitmap,eax
OG> invoke SelectObject,hMemDC,hBitmap
OG> invoke SendMessage,windhand,WM_PAINT,hMemDC,0
OG> invoke SendMessage,windhand,WM_ERASEBKGND,hMemDC,0
OG> invoke BitBlt,hMemDC,0,0,1024,768,hDC,0,0,SRCCOPY
OG> invoke ReleaseDC,windhand,hDC
OG> invoke GetPixel,hMemDC,1000,5
OG> mov Color,eax
OG>Pls obysnite 4ego en prawelno delay pri otkritom oktne wse normalno beretza nujnii pixel a wot kogda sakrito okno todrugim ili swernuto ne pomogart hoty wrode kak WM_PAINT posilay moemu oknu , wesi topik pro4ital no ne kak ne ponyl w 4em sagwoska
"ili swernuto" — это отбросим
Вот фрагмент рабочего кода для XP с PrintWindow, может извлечете что-то для себя полезное:
invoke GetWindowRect,hwnd2,addr rect2 ; hwnd2 - нужное окно
invoke GetAncestor,hwnd2,GA_ROOT ; GA_ROOTOWNER
mov hwnd,eax
invoke GetWindowRect,hwnd,addr rect
invoke IsWindowVisible,hwnd
mov flag,eax
.if eax==0
invoke SetWindowPos,hwnd,0,-3000,0,0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE
invoke SetWindowPos,hwnd,0,0,0,0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOMOVE or SWP_SHOWWINDOW
.endif
invoke GetWindowDC,hwnd
mov hdc,eax
; invoke GetDesktopWindow
xor eax,eax
mov hwnd0,eax
invoke GetDC,eax
mov hdc0,eax
invoke CreateCompatibleDC,hdc0
mov hdcmem,eax
mov eax,rt.right
sub eax,rt.left
mov ecx,rt.bottom
sub ecx,rt.top
invoke CreateCompatibleBitmap,hdc,eax,ecx
mov hbmp,eax
invoke SelectObject,hdcmem,hbmp
mov hobj,eax
invoke PrintWindow,hwnd,hdcmem,0
invoke CreateCompatibleDC,hdc0
mov hdcmem2,eax
mov eax,rt2.right
sub eax,rt2.left
mov _w2,eax
mov ecx,rt2.bottom
sub ecx,rt2.top
mov _h2,ecx
invoke CreateCompatibleBitmap,hdc,eax,ecx
mov hbmp2,eax
invoke SelectObject,hdcmem2,hbmp2
mov hobj2,eax
mov eax,rt2.left
sub eax,rt.left
mov ecx,rt2.top
sub ecx,rt.top
invoke BitBlt,hdcmem2,0,0,_w2,_h2,hdcmem,eax,ecx,SRCCOPY
; invoke GetPixel,hdcmem2,pt.x,pt.y ; место для выкусывания пикселя :-)
invoke SelectObject,hdcmem,hobj
invoke DeleteDC,hdcmem
invoke SelectObject,hdcmem2,hobj2
invoke DeleteDC,hdcmem2
; invoke OpenClipboard,hwnd
invoke OpenClipboard,hwnd0
invoke EmptyClipboard
invoke SetClipboardData,CF_BITMAP,hbmp2
invoke CloseClipboard
.if flag==0
invoke SetWindowPos,hwnd,0,0,0,0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOMOVE or SWP_HIDEWINDOW
invoke SetWindowPos,hwnd,0,rt.left,rt.top,0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE
.endif
invoke DeleteObject,hbmp
invoke DeleteObject,hbmp2
invoke ReleaseDC,hwnd0,hdc0
invoke ReleaseDC,hwnd,hdc
Конечно, по-хорошему надо было бы запросить IsWindowVisible для ВСЕЙ цепочки от hwnd2 до hwnd, сохранить результат, сделать Visible каждого в цепочке,
а в конце — восстановить исходную конфигурацию... но пусть уж остается как есть
А>Конечно, по-хорошему надо было бы запросить IsWindowVisible для ВСЕЙ цепочки от hwnd2 до hwnd, сохранить результат, сделать Visible каждого в цепочке,
А>а в конце — восстановить исходную конфигурацию... но пусть уж остается как есть
Ай, забыл войти с парадного входа
wot tolko nepoimy

kopiruetza okno s clienskoi 4astiy 4ernoi
wot takay gadosty glawnoe title proresowiwaetza a wnutri okna 4ernota podkajite 4ego eto mojet bity
Это может быть Direct3D. Что за программа? Видеоплеер?