||
用ResourceHacker(以下简称RH)打开要修改的文件.可以是EXE也可以是DLL. (我常用RH来修订Becky 2的汉化字串,或者调整控件的大小位置等. 以前的exeScope太老,有些EXE编辑不动了).
根据是菜单,对话框,还是弹出菜单,字符串等不同资源类型, 找到并修改之.
有些RH的使用小技巧,例如
1)控件可以双击进入编辑状态,这样不用记忆很多选项.
2)也可以直接在文字上修改,但要注意有时会是改写模式要注意防止吃字.
3)可以一次选中多个控件共同移动. 也可以按上下箭头键在不同的控件上下移动,查看他们的距离.
4)甚至还可以改变控件的类型(不过重要的控件不要这么玩)
修改之后要编译一下,就是向右的箭头键点击一下. 再保存或另存就行. 不过这软件有个缺点,如果保存不成功(有时程序打开了或DLL被调用中)也不会弹出对话框提示. 因此在退出之前你要自己确认是否正确保存了,免得修改的结果丢失.
Notepad3是一个轻巧好用的文本编辑器,功能丰富,我比较喜欢用.但它没有提供自定义快捷键的功能,通过研究我发现可以用RH来编辑Notepad3的资源,从而重新定义它的快捷键.
不同语言的显示,各种程序采用的方式并不一致,有的是加载EXE内不同系列的字符串,有的是加载外部DLL或类似文件中的字符串,有的是加载文本文件中的字串,有的则没有这样的机制,需要手动修改EXE内的字串. Notepad3的汉化, 光修改Notepad3.exe还不够(EXE默认语言是英文), 它的其它语言翻译, 存放在lng目录下不同语言之目录(简体中文是lng\zh-CN)下的np3lng.dll.mui文件来实现的. 这其实就是一个mui后缀的DLL文件,因此直接RH修改DLL里的资源即可.
举一个复杂一点的例子. 我想把Notepad3"删除行"的快捷方式,从默认的Ctrl+Shift+D, 修改成Ctrl+Y. 如何操作呢?
2.1 先用RH打开Notepad3.exe,在菜单资源下面查找这个菜单项对应的ID, 也可以理解为对应功能的ID,因此保持这个ID不变是关键.
原来的菜单项是这样的
记下这个快捷键的ID: 40319, 顺便把Ctrl+Shift+D 修改成Ctrl+Y即可,后面的ID不要修改.
这里的\t表示一个TAB键, 与前面的文字有个小空格. &e表示在e字线加下划线.
编译一下再做下一步.
2.2 然后到Accelerators目录下找ID为 40319的组合,把它们的内容修改为Ctrl+Y:
点击上面的编译按钮, 再保存一下,退出RH.
2.3 这时再运行一下notepad3,并在"设置/语言"下切换到英文(切换到英文状态下就可以看到效果了.
2.4 因为中文的菜单资源在lng/zh-CN/np3lng.dll.mui文件, 但这个DLL中没有定义新的快捷键表,说明使用的是它的主程序中的快捷键表, 只要修改一下菜单中的文字,然后编译+保存即可.
最后测试Ctrl+Y能否正常删除一行,证明完全符合要求.至此,修改结果.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 11:29
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社