|
原理hook “LineTo”,判断大致位置,来决定是哪一层,给他用什么颜色的画笔,比如,从47位置开始画,是第一层,69是第二层,91是第三层……每层间隔22像素
弄着弄着,不太对劲了,滚动条滚动局部更新的时候,不画横线了,只画竖线,就不知道用什么颜色的画笔了,图片为理想状态,实际无法使用
窗口程序集名 | 保 留 | 保 留 | 备 注 | 入口程序集 | | | | 变量名 | 类 型 | 数组 | 备 注 | hook | 类_InlineHook | | pens | 整数型 | 7 | pen | 整数型 | | flag | 逻辑型 | |
ET. 添加事件处理 ( #事件标识_插件启用, &事件_插件启用 )ET. 添加事件处理 ( #事件标识_插件停用, &事件_插件停用 )返回 (0 )返回 (生成插件信息 (“插件名称”, “插件备注”, “1.0”, “插件作者”, , )) hook. 安装HOOK (-1, 地址_取API地址 (“Gdi32.dll”, “LineTo”), &myLineTo, )clr = { #红色, #橙黄, #嫩黄, #绿色, #青蓝, #蓝色, #紫色 }计次循环首 (取数组成员数 (clr ), i )pens [i ] = sn_CreatePen (0, 1, clr [i ])计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | pt | POINTAPI | | | w | 整数型 | | |
hook. 暂停HOOK ()sn_SaveDC (hdc )sn_GetCurrentPositionEx (hdc, pt )w = pt.x - x 如果真 (flag 或 w = 16 或 w = -12 或 w = 10 )如果真 (w = 16 )ET. 输出文本 (格式化文本 (“%d %d => %d %d [%d]”, pt.x, pt.y, x, y, w ), 真)pen = pens [ (x - 47 ) ÷ 22 % 7 + 1 ]sn_SelectObject (hdc, pen)flag = w = 16 或 w = 10 sn_LineTo (hdc, x, y)sn_RestoreDC (hdc, -1 )hook. 继续HOOK ()hook. 卸载HOOK ()
|
|