Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否有命令行实用程序来更改win32 exe的嵌入图标?_Windows_Icons - Fatal编程技术网

Windows 是否有命令行实用程序来更改win32 exe的嵌入图标?

Windows 是否有命令行实用程序来更改win32 exe的嵌入图标?,windows,icons,Windows,Icons,…我希望我可以将一些东西集成到我的构建过程中:有什么“标准”工具可以做到这一点吗?我非常确定我可以做到这一点,还有一些其他的事情,我相信我在不久前使用它时就认出了它的图标。希望对你有帮助 您需要创建一个资源脚本文件(.rc),然后使用rc(.rc→ .res)和cvtres(.res→ .obj)。这两种工具都包含在Microsoft平台SDK中。将对象文件包括到链接器命令中时,结果将在资源脚本文件中指定图标。以下是示例资源文件和创建对象的命令: 资源中心: 101 ICON

…我希望我可以将一些东西集成到我的构建过程中:有什么“标准”工具可以做到这一点吗?

我非常确定我可以做到这一点,还有一些其他的事情,我相信我在不久前使用它时就认出了它的图标。希望对你有帮助

您需要创建一个资源脚本文件(
.rc
),然后使用
rc
.rc
.res
)和
cvtres
.res
→ <代码>.obj)。这两种工具都包含在Microsoft平台SDK中。将对象文件包括到链接器命令中时,结果将在资源脚本文件中指定图标。以下是示例资源文件和创建对象的命令:

资源中心:

101          ICON                    "my_icon.ico"
您的图标文件位于文件
my_icon.ico
中。将这些文件编译为对象文件的命令:

rc -fo resource.res resource.rc
cvtres -machine:ix86 -out:resource.obj resource.res
但是,到目前为止,设置程序图标最简单的方法是只显示


从技术上讲,这两种方法都不允许您实际更改现有可执行文件的图标,但不知何故,我怀疑这是您真正想要做的。

看起来我已经找到了我要做的事情的答案。

您看到了吗?您还可以通过(脚本)来驱动它,因此我确信它可以被合并到您的构建中。

这太棒了:而且几乎完美了,只是我不能将它作为构建过程的一部分来运行,因为它不是基于命令行的。尽管如此,我还是为一个有趣的链接投票。我发现了以下内容:。遗憾的是,他们想要的现金太多了。这不是一个控制台应用程序,但你仍然可以使用参数运行它,并在没有用户交互的情况下执行单个“操作”。如果您需要执行多个操作,它还支持脚本文件不,我真的支持!原因很复杂:我需要向使用PyInstaller构建的一些实用程序添加自定义图标。问题是开箱即用的功能依赖于pywin32,这是正常的,除了我在由
virtualenv
pip
组合提供的沙箱中运行构建外:不幸的是,我根本找不到方法让
pywin32
安装:似乎没有办法让它在这种环境中构建。所以为了避免这个问题,我希望能够在PyInstaller完成后更改图标。如果您在构建过程中这样做,为什么需要在完成后更改图标?为什么不首先用正确的图标构建它呢?(参见Ville Laurikari的回答)。参见我对他的回答的评论。有时需要在实际构建后更新文件版本(插入SVN或CVS修订版,而不更改源代码)。但我真的不明白为什么你需要改变图标。不幸的是,我后来发现它的功能不完整。尽管如此,还是有人能轻而易举地完成它:它只是一个
cpp
源文件,代码非常干净。我放弃了这个工具,因为我不想为图标更改这样的小任务安装python。我无法用Resource Hacker 4.2.5替换7z自解压exe文件中的图标。在我的exe文件中有两个图标1:02:0和一个图标组101:0。我想替换图标数据并保持资源索引不变,我认为这是最简单的方法。根据我对PE格式的了解,它是可行的,但RH4.2.5无法做到这一点。不幸的是,资源黑客v5.1.7生成的二进制文件在某种程度上已损坏,无法再由
signtool.exe
签名。