目前用了4种颜色,看起来显眼一点吧:clr = { #红色, #绿色, #蓝色, #嫩黄 },美工不行,这颜色怎么配都不好看,谁愿意改自己改了随便发,完全是出于无聊写这个
因为昨天有人说到:
编译好的插件:
123.rar
(872.34 KB, 下载次数: 67)
原理:hook TextOutA,分析括号信息,上色
窗口程序集名 | 保 留 | 保 留 | 备 注 | 入口程序集 | | | | 变量名 | 类 型 | 数组 | 备 注 | hook | 类_InlineHook | | clr | 整数型 | 4 |
ET. 添加事件处理 ( #事件标识_插件启用, &事件_插件启用 )ET. 添加事件处理 ( #事件标识_插件停用, &事件_插件停用 )返回 (0 )返回 (生成插件信息 (“插件名称”, “插件备注”, “1.0”, “插件作者”, , )) hook. 安装HOOK (-1, 地址_取API地址 (“Gdi32.dll”, “TextOutA”), &TextOutA, )clr = { #红色, #绿色, #蓝色, #嫩黄 }hook. 卸载HOOK ()|
TextOutA | 整数型 | | |
hdc | | | | | x | | | | | y | | | | | lpString | 文本型 | | | | nCount | | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | c | 整数型 | | | flagx | 整数型 | | | ret | 整数型 | | | ff | 逻辑型 | | | sz | Size | | |
hook. 暂停HOOK () 如果 (lpString ≈ “ (” 或 lpString ≈ “(” 或 lpString ≈ “)”) 变量循环首 (取文本长度 (lpString ), 1, -1, i )   c = 取代码 (lpString, i )  判断 (c = 40 )   flagx = flagx - 1   判断 (c = 41 )   flagx = flagx + 1           变量循环尾 () sn_SaveDC (hdc ) 判断 (flagx = 0 ) sn_SetTextColor (hdc, clr [1 ]) 判断 (flagx > 0 )  如果 (c = 40 )  sn_SetTextColor (hdc, clr [flagx % 4 + 1 ])  sn_SetTextColor (hdc, clr [ (flagx - 1 ) % 4 + 1 ])        如果 (nCount ≥ 2 且 (取代码 (lpString, 2 ) = 40 或 取代码 (lpString, 2 ) = 41 ))  ff = 真  ret = sn_TextOut (hdc, x, y, lpString, 1 )  ret = sn_TextOut (hdc, x, y, lpString, nCount ) sn_RestoreDC (hdc, -1) ret = sn_TextOut (hdc, x, y, lpString, nCount )hook.继续HOOK () 如果真 (ff ) sn_GetTextExtentPoint32 (hdc, lpString, 1, sz ) sn_TextOut (hdc, x + sz.cx, y, 指针到文本 (取变量数据地址 (lpString ) + 1 ), nCount - 1 )返回 (ret)  
源码:
彩虹括号.e
(982.83 KB, 下载次数: 70)
|