欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

如何将按钮变为灰色(应网友要求修改稿) (3千字)

如何将按钮变为灰色(应网友要求修改稿) (3千字)

如何将按钮变为灰色(应网友要求修改稿)

工具:TRW2000
   ULTRAEDIT
1、运行TRW2000,将其最小化。
2、运行应用程序,调出要修改的按钮所在窗口。
  如图:
  
  此例中要改注册按钮为灰色,注意:注册两字后面的(R)。
3、按CTRL+N调出TRW2000。
4、下PMODULE指令,返回WINDOWS窗口。
5、点要修改的按钮,被TRW2000拦截,光标停留在应用程序域。
6、在光标所在行上面的那个CALL上下断。
7、重新运行应用程序,再次调出要修改的按钮所在窗口,被所下断点拦截。
8、清中断并下指令:
  S DS:400000 L100000 28 26 52 29 (回车)
  或
  S DS:400000 L100000 '(&R)' (回车)
  其中:40000是应用程序的基地址,100000是程序装入内存的总长度(可根据实际情况灵
  活掌握),搜索码28 26 52 29是(&R)的ASCII码。之所以用(&R),而不用“注册”搜索,
  是因为(R)较容易观察到,不用翻译中文机器码。
  回车后TRW2000返回下面的信息:
  409BA5 IN XXXXXX!.RSRC+EBA5
  说明TRW2000找到该按钮菜单的相关信息在.RSRC段的+EBA5,
  此时数据窗口也显示409BA5开始的数据。
9、按ALT+↑,使数据的内存映象从409B95开始显示
  490B80 65 6C 70 43 6C 69 63 6B-00 00 09 54 4D 65 6E 75 elpClick...TMenu
  490B90 49 74 65 6D 02 52 31 07-43 61 70 74 69 6F 6E 06 Item.R1.Caption.
  490BA0 08 D7 A2 B2 E1 28 26 52-29 0A 49 6D 61 67 65 49 .注册(&R).ImageI
  490BB0 6E 64 65 78 02 02 07 4F-6E 43 6C 69 63 6B 07 0B ndex...OnClick..
  490BC0 62 74 6E 52 65 67 43 6C-69 63 6B 00 00 09 54 4D btnRegClick...TM
  可以看出,将07 OnClick 07 0B btnRegClick改为07 Enabled 08,并补足其余的空间,
  即可使注册按钮变为灰色,且被禁止激活。
10、用以下数据制作LOADER,或用ULTRAEDIT作如下修改:
  409BA9:
  0A 49 6D 61 67 65 49 6E 64 65 78 02 02 07 4F 6E 43 6C 69 63 6B 07 0B 62 74 6E 52 65 67 43 6C 69 63 6B
  20 20 20 20 20 20 20 20 20 20 20 20 0A 49 6D 61 67 65 49 6E 64 65 78 02 02 07,45 6E 61 62 6C 65 64 08
  其中:12个空格是因为OnClick 07 0B btnRegClick去掉后,Enabled 08比它少12个字
  符,因此用空格补足。空格只能补在可显示的字符串后面,其他参数项的位置向后顺延。
11、用以下数据制作LOADER,或用ULTRAEDIT作如下修改:
  409BA0:
  08
  14
  串长度增加0Ch。
12、存盘,重新运行应用程序,注册按钮变为灰色,且被禁止激活。
  改后内存映象:
  490B80 65 6C 70 43 6C 69 63 6B-00 00 09 54 4D 65 6E 75 elpClick...TMenu
  490B90 49 74 65 6D 02 52 31 07-43 61 70 74 69 6F 6E 06 Item.R1.Caption.
  490BA0 14 D7 A2 B2 E1 28 26 52-29 20 20 20 20 20 20 20 .注册(&R)     
  490BB0 20 20 20 20 20 0A 49 6D-61 67 65 49 6E 64 65 78      .ImageIndex
  490BC0 02 02 07 45 6E 61 62 6C-65 64 08 00 00 09 54 4D ...Enabled....TM
改前后图象对比:
  

说明:
①、该按钮菜单项的资源可以用下面的方式来表达:
  object R1: TMenuItem            ;菜单项
   Caption = '注册(&R)'          ;可显示的字符串
   ImageIndex = 2                ;图标
   OnClick = btnRegClick        ;键响应
  end
  它在内存中有一个固定的长度,
  其中ImageIndex、OnClick等参数所占用的内存空间是可用空间。
  修改后:
  object R1: TMenuItem
   Caption = '注册(&R)            '
   ImageIndex = 2
   Enabled = False
  end
②、修改内存后,原有空间内的所有内容都必须是合法的资源表达,否则WINDOWS会认为资源
  找不到而报错。无法表达的空间可以填写合法而无意义的参数或用空格来填充。空格只能
  补在可显示的字符串后面。
③、内存中字串前面的一字节十六进制数,指示字串的长度,若字串长度被修改,该数值也应
  做相应的修改。
④、上面的示例若改为使用ImageIndex参数所占用的内存空间,修改的字节数会大大减少,
  适合制作LOADER,但图标将消失。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功