warkey怎么使用不成了?
warkey怎么使用不成了?
09-09-07 &8365人阅读
编程小屋(18)
WarKey 是一个魔兽辅助工具,它可以修改英雄物品栏的快捷键,以及显血条等,越来越多的玩家开始离不开它,我所知道的是,很多玩真三的人都在使用它。遗憾的是,这个工具功能上挺实用,但是界面却很糟糕,完全不是一个已经对外发布的作品应该有的。请看截图:这是主窗口。第一是菜单,又是&File&,又是&自定义&&&,不知道这个到底是中文软件还是英文软件;第二是字体,作者只是用 DrawText 函数显示了一下文字,没有设置字体,默认系统会使用 System 字体,效果就是图上这样,另外搞不懂作者为什么要居中&&这个设置窗口还马马虎虎,不过也有很多不和谐的地方。这里的字体是 10 号宋体,而一般软件都用 9 号宋体的,看上去偏大。三个按钮又和主窗口的菜单一样,不英不汉。&数字7&、&数字4&、&数字1&这三个标签有些挡住后边的文本框了。另外下面的说明文字略显不够大方。这是关于窗口。这里显示&魔兽小助手&,而主窗口标题栏显示的是&warkey&,名字不统一。而且这里字体也是 System,标签不够长,显示不下&完美版&什么的。综上,我觉得这个界面令我极不舒服,于是决定改之。后面两个窗口都是标准资源,用 Resource Hacker 很快改好了,并修改了部分文字。软件名称我将它统一为&WarKey&。我发现原程序中有用以实现 XP 风格的 24 号资源,但是不知怎么的,它的内容却是错误的,顺手改了下。把所有按钮的 Flat 风格去掉了。效果如下:个人觉得舒服多了。剩下的问题就是主窗口了。作者只是调用了 DrawText,之前并没有设置字体,要改的话要加入一点代码。在文件 00007A10 后有一大段空白,考虑将代码放在这里。设想这样子实现,先调用 CreateFontIndirect 创建字体,然后使用 SelectObject 来选择字体,最后使用 DrawText 显示。先使用 LordPE 将 gdi32.dll 里的 CreateFontIndirectA 和 SelectObject 加入输入表。CreateFontIndirectA 需要一个字体结构--,我在文件偏移 00007A30 处加入标准的 9 号宋体的字体结构,内容为:F4FFFFFFCBCECCE5(参考自 )使用 OllyDbg 调试,找到调用 DrawTextA 的地方:最上面一行 6A 01 是对齐方式,我把它改成 6A 00,就是 DT_LEFT。这里代码很紧凑,几乎没地方写额外的代码,只好把最后一句 Call 改掉,上面的 5 个 Push 作为我们自己的函数的参数。改为这样:这里
对应文件偏移 00007A50,也就是字体结构后面紧接着的位置。下面我们就在
处写自己的函数:大功告成。顺便修改了主窗口风格,禁止了最大化按钮,具体位置是调用 CreateWindowExA 的地方:选中的那一行,原来是 68 0000CF00 的。调整了下菜单和文字,最后效果:功能上,把保存按键的文件名由 warkey.txt 改为了 warkey.cfg,取消了隐藏属性。第一次成功地把东西改到自己满意的地步哈,请各位看官指教。下载地址:请到我的网盘()下载。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:103806次
积分:1304
积分:1304
排名:千里之外
原创:35篇
评论:102条
(1)(1)(1)(1)(2)(2)(1)(1)(2)(5)(3)(1)(1)(2)(1)(2)(16)