汇编GDI绘图晋级篇:屏幕重绘并实现简单的左键控制

前面说到汇编仅仅用一个API就实现窗口重绘..

https://shadowkong.com/archives/104

今天再次用汇编尝试屏幕重绘 虽然效果一样 但是用到的API大有不同~

整个屏幕重绘的关键代码:

invoke GetDC,hWin2
mov @hDc2,eax;
invoke CreateDC,addr szDriver,NULL,NULL,NULL
mov @hDc1,eax;
invoke GetClientRect,hWin2,addr @stRect
invoke BitBlt,@hDc2,0,0,@stRect.right,@stRect.bottom,\
@hDc1,0,0,SRCCOPY
invoke ReleaseDC,hWin2,@hDc2
invoke DeleteDC,@hDc1

窗口重绘和屏幕重绘分别用到不同的API配对~

说实话屏幕重绘其实就是那么简单~

但是我额外给它加了个功能:

屏幕响应窗口按键~

也就是相当于QQ远程协助中的远程控制…

当然这里只实现了简单的 鼠标键键和鼠标指针移动…

上图上图..

原理在于:

用特别的API获取屏幕句柄~

.elseif eax== WM_CREATE

invoke GetDesktopWindow

mov WindowHwnd,eax

然后通过处理窗口按键时候的坐标在屏幕相应坐标响应事件~

mov eax,@stPoint.y

shl eax,16

add eax,@stPoint.x

invoke PostMessage,WindowHwnd,WM_LBUTTONDOWN,MK_LBUTTON,eax

invoke PostMessage,WindowHwnd,WM_LBUTTONUP,0,eax

呃 就是这样…

基本原理就是这样…

更深入的问题是:

如何是它能实现响应IO消息?

如何与HOOK联合起来形成屏幕监视?

如何与网编联合起来实现类似远程控制?

这涉及到TCP\IP协议族的图片传输问题..(暂时不能解决)

发表评论

邮箱地址不会被公开。 必填项已用*标注