无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1203|回复: 19
打印 上一主题 下一主题

[求助] 高手请进,如何用reshacker批量替换图标资源?

[复制链接]
跳转到指定楼层
1#
发表于 3 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT,都知道reshacker可以替换exe或dll文件里的图标资源,不过reshacker貌似一次只能替换exe或dll文件里的一个图标对象,如果要替换的图标如果多了,就会很烦人

假设d:/test.dll里编号1-20的图标都是要替换的,而d:/x文件夹已经准备好对应的、用于替换的1-20图标资源(文件名与要替换的对象完全一致),如何让reshacker一次性用d:/x文件夹里的图标资源替换掉d:/test.dll里的编号1-20图标?

求高手赐教~
2#
发表于 3 天前 | 只看该作者
这玩意支持命令行
回复

使用道具 举报

3#
发表于 3 天前 | 只看该作者
别人怎么弄的我不清楚,但是我用的是按键精灵~
回复

使用道具 举报

4#
发表于 3 天前 | 只看该作者
1.先找规律
2.再编程序
3.分而克之
4.神功大成
回复

使用道具 举报

5#
发表于 3 天前 | 只看该作者
本帖最后由 门口 于 2025-8-26 12:32 编辑

可以写资源修改脚本,然后用rh调用。具体可以参考官方帮助。
下面是个脚本例子(可命名为:改图标脚本.txt ):

[FILENAMES]
Exe=    d:\test.dll
SaveAs= d:\testNew.dll
//Log=

[COMMANDS]
-addoverwrite 1\1.ico ICON,1
-addoverwrite 1\2.ico ICON,2
-addoverwrite 1\3.ico ICON,3
。。

晕,这里代码标签有问题吗

然后命令行或批处理内调用:ResourceHacker.exe -script 改图标脚本.txt


点评

运行没有任何结果……  详情 回复 发表于 前天 09:15
回复

使用道具 举报

6#
发表于 3 天前 | 只看该作者
来学习下
回复

使用道具 举报

7#
发表于 3 天前 | 只看该作者
我一般用IconWork,傻瓜简单~~
回复

使用道具 举报

8#
发表于 3 天前 | 只看该作者
进来学习
回复

使用道具 举报

9#
发表于 3 天前 | 只看该作者
以前汉化软件用过
个人感觉替换资源后程序容易出错
回复

使用道具 举报

10#
发表于 3 天前 | 只看该作者
进来学习
回复

使用道具 举报

11#
发表于 3 天前 | 只看该作者
:: 定义图标映射表(索引:文件名)
set "iconMap[0]=7z.ico"
set "iconMap[1]=zip.ico"
set "iconMap[2]=bz2.ico"
set "iconMap[3]=rar.ico"
set "iconMap[4]=arj.ico"
set "iconMap[5]=z.ico"
set "iconMap[6]=lha.ico"
set "iconMap[7]=cab.ico"
set "iconMap[8]=iso.ico"
set "iconMap[9]=001.ico"
set "iconMap[10]=rpm.ico"
set "iconMap[11]=deb.ico"
set "iconMap[12]=cpio.ico"
set "iconMap[13]=tar.ico"
set "iconMap[14]=gz.ico"
set "iconMap[15]=wim.ico"
set "iconMap[16]=lzh.ico"
set "iconMap[17]=dmg.ico"
set "iconMap[18]=hfs.ico"
set "iconMap[19]=xar.ico"
set "iconMap[20]=vhd.ico"
set "iconMap[21]=fat.ico"
set "iconMap[22]=ntfs.ico"
set "iconMap[23]=xz.ico"
set "iconMap[24]=sqfs.ico"
set "iconMap[25]=apfs.ico"
set "iconMap[26]=zst.ico"

:: 批量替换图标
rem 【x64】
:: 备份原始文件
copy /y "x64\7z.dll" "x64\7z_原文件.dll" >nul

for /l %%i in (0,1,26) do (
    set "currentIcon=Bandizip_ico\!iconMap[%%i]!"
    echo 正在替换索引 %%i 的图标:!currentIcon!
    ResourceHacker.exe ^
        -open "x64\7z.dll" ^
        -save "x64\7z.dll" ^
        -action addoverwrite ^
        -res "!currentIcon!" ^
        -mask ICONGROUP,%%i
)

点评

牛逼佬,就是效率有点低下, 像这样固定的建议是直接写在配置文件,然后reshack一次调用  详情 回复 发表于 昨天 10:18
1:我的需求是替换的图标都是同源图标相同文件名,比如iconMap[0]=7z.ico 应该是 iconMap[0]=1.ico ,以此类推,而且我不想一行一行的写对招代码(比如修改序列14-255的图标,一行一行写set代码会疯的),请问如何修  详情 回复 发表于 昨天 09:42
厉害  详情 回复 发表于 前天 12:45
回复

使用道具 举报

12#
 楼主| 发表于 前天 09:15 | 只看该作者
门口 发表于 2025-8-26 12:29
可以写资源修改脚本,然后用rh调用。具体可以参考官方帮助。
下面是个脚本例子(可命名为:改图标脚本.txt ...

运行没有任何结果……

点评

你是怎么写的脚本,怎么运行的,看下运行的日志文件  详情 回复 发表于 前天 12:33
回复

使用道具 举报

13#
发表于 前天 10:08 | 只看该作者
感谢各位分享经验
回复

使用道具 举报

14#
发表于 前天 12:20 | 只看该作者
Herofmd 发表于 2025-8-26 13:37
我一般用IconWork,傻瓜简单~~

试试大佬说的这个软件怎么样
回复

使用道具 举报

15#
发表于 前天 12:33 | 只看该作者
kokozzz123 发表于 2025-8-27 09:15
运行没有任何结果……

你是怎么写的脚本,怎么运行的,看下运行的日志文件
回复

使用道具 举报

16#
发表于 前天 12:45 | 只看该作者
断剑留痕 发表于 2025-8-26 17:04
:: 定义图标映射表(索引:文件名)
set "iconMap[0]=7z.ico"
set "iconMap[1]=zip.ico"

厉害

点评

1:我的需求是替换的图标都是同源图标相同文件名,比如iconMap[0]=7z.ico 应该是 iconMap[0]=1.ico ,以此类推,请问如何修改代码? 2 范例中的修改对象是bat同文件夹下(我的推测没错吧)x64\7z.dll,能否在代码  详情 回复 发表于 昨天 09:34
回复

使用道具 举报

17#
 楼主| 发表于 昨天 09:34 | 只看该作者
本帖最后由 kokozzz123 于 2025-8-28 09:42 编辑

不好意思,回错人了
回复

使用道具 举报

18#
 楼主| 发表于 昨天 09:42 | 只看该作者
本帖最后由 kokozzz123 于 2025-8-28 10:22 编辑
断剑留痕 发表于 2025-8-26 17:04
:: 定义图标映射表(索引:文件名)
set "iconMap[0]=7z.ico"
set "iconMap[1]=zip.ico"

1:我的需求是替换的图标都是同源图标相同文件名,比如iconMap[0]=7z.ico 应该是 iconMap[0]=0.ico ,以此类推,而且我不想一行一行的写对招代码(比如修改序列14-255的图标,一行一行写set代码会疯的),请问如何修改代码?

2 范例中的修改对象是bat同文件夹下(我的推测没错吧)x64\7z.dll,能否在代码开头由用户通过一个变量实现自定义指定?

3 范例中的set "currentIcon=Bandizip_ico\!iconMap[%%i]!" 看不懂,什么意思?是指用于替换的ico文件在bat同文件夹下的Bandizip_ico\文件夹下吗,同样的,能否在代码开头由用户通过一个变量实现自定义指定?

点评

我这个是调用 ResourceHacker.exe 来实现的,就算不一一对应,也精简不了多少了,让其他大佬提供其他代码帮你吧。  详情 回复 发表于 昨天 10:13
回复

使用道具 举报

19#
发表于 昨天 10:13 | 只看该作者
kokozzz123 发表于 2025-8-28 09:42
1:我的需求是替换的图标都是同源图标相同文件名,比如iconMap[0]=7z.ico 应该是 iconMap[0]=1.ico ,以 ...

我这个是调用 ResourceHacker.exe 来实现的,就算不一一对应,也精简不了多少了,让其他大佬提供其他代码帮你吧。
回复

使用道具 举报

20#
发表于 昨天 10:18 | 只看该作者
断剑留痕 发表于 2025-8-26 17:04
:: 定义图标映射表(索引:文件名)
set "iconMap[0]=7z.ico"
set "iconMap[1]=zip.ico"

牛逼佬,就是效率有点低下,
像这样固定的建议是直接写在配置文件,然后reshack一次调用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-29 04:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表