我们知道易语言程序默认的类名是WTWindow,如果想改变这个类名,那么就需要API HOOK ,本课我们是实现的动态类名,也就是说,每次启动程序,它的类名都不一样。 生成动态类名我们采用了文本_取随机字母()
必读
1、动态类名的hook必须在载入窗口前
2、所以我们需要修改易语言启动改为:通过名称为“_启动子程序”的子程序来启动
3、在动态类名回调函数中,我们应当是先停止HOOK,再启动hook。
文本_取随机字母
.版本 2
.子程序 文本_取随机字母, 文本型, 公开, 取随机26个字母!
.参数 要取的字符数, 整数型, , 要取字符个数;
.参数 类型, 整数型, 可空, 可空:默认为小写字母;0=小写字母;1=大写字母;2=大小写字母混合;
.局部变量 临时文本, 文本型
.局部变量 大小写, 整数型
置随机数种子 ()
.计次循环首 (要取的字符数, )
.判断开始 (类型 = 0)
临时文本 = 临时文本 + 字符 (取随机数 (97, 122))
.判断 (类型 = 1)
临时文本 = 临时文本 + 字符 (取随机数 (65, 90))
.判断 (类型 = 2)
大小写 = 取随机数 (1, 2)
.如果 (大小写 = 1)
临时文本 = 临时文本 + 字符 (取随机数 (97, 122))
.否则
临时文本 = 临时文本 + 字符 (取随机数 (65, 90))
.如果结束
.默认
.判断结束
处理事件 ()
.计次循环尾 ()
返回 (临时文本)
hook
h.安装Hook (“user32.dll”, “CreateWindowExA”, 到整数 (&MyCreateWindowEXA)) h.开始Hook ()
类名回调函数源码:
.版本 2 .子程序 MyCreateWindowEXA, 整数型 .参数 dwExStyle, 整数型 .参数 lpClassName, 文本型 .参数 lpWindowName, 文本型 .参数 dwStyle, 整数型 .参数 x, 整数型 .参数 y, 整数型 .参数 nWidth, 整数型 .参数 nHeight, 整数型 .参数 hWndParent, 整数型 .参数 hMenu, 整数型 .参数 hInstance, 整数型 .参数 lpParam, 整数型 .局部变量 返回值, 整数型 .局部变量 w, WNDCLASSEX ' 停止拦截API h.停止Hook () .如果 (lpClassName = “WTWindow”) w.cbSize = 12 × 4 ' 获取类信息 GetClassInfoExA (hInstance, lpClassName, w) ' 设置类名 w.lpszClassName = NewClassName ' 窗口注册类名 RegisterClassExA (w) 返回值 = CreateWindowExA (dwExStyle, w.lpszClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ' 卸载hook h.卸载Hook () .否则 返回值 = CreateWindowExA (dwExStyle, w.lpszClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) .如果结束 h.开始Hook () 返回 (返回值)
教程获取下载:
百度网盘链接:https://pan.baidu.com/s/158ikKVjIwaoF4438MG4fhA
提取码:加QQ群:521068947 群文件下载
资源教程交流①群:521068947
511遇见QQ: 272586593