How to change an executable's properties? (Windows)
Solution 1
If you are using C/Win32 you can add something like this to your project encapsulated in a *.rc (resource) file:
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,2
PRODUCTVERSION 0,0,0,2
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
{
BLOCK "StringFileInfo"
{
BLOCK "040904b0"
{
VALUE "Comments", "comment\0"
VALUE "CompanyName", "comment\0"
VALUE "FileDescription", "base file\0"
VALUE "FileVersion", "0.0.0.2 TP\0"
VALUE "InternalName", "testTP\0"
VALUE "LegalCopyright", "none\0"
VALUE "OriginalFilename", "test.exe\0"
VALUE "ProductName", "test\0"
VALUE "ProductVersion", "0.0.0.2 TP\0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 1200
}
}
Solution 2
If you want to change the FileDescription or any other version resource string on a compiled executable, rcedit (a small open-source tool) does it pretty easily:
$ rcedit MyApp.exe --set-version-string FileDescription "My Awesome App"
Solution 3
Very easy if you are using visual studio:
- Right click on the 'Resource Files' folder in the project
- Click 'Add' then 'Resource'
- Choose 'Version' from the pop-up dialog
You can then double click on the file to open it in Visual Studio, and you get a handy editor to change the values.
Your values are then automatically linked in to the EXE.
Solution 4
This is simple file version info resource. For already existent files you can edit this information with any resource editor (for example Resource Hacker, it is outdated but still good). You can change icon this way too.
If you create your own application, then setting it depends on tool you are using. For example in Visual Studio you must look into project properties.
Solution 5
Related videos on Youtube
alk
Be thoughtful and attentive ... - but just do it! #SOreadytohelp
Updated on July 09, 2022Comments
-
alk almost 2 years
When I create a .exe, I can right click it and go to properties->details. Then I get a list like:
File Description | Type | Application File Version | Product Name | Product Version | Copyright | Size | 18.0 KB Date Modified | 6/16/2009 8:23 PM Language |
How do I change these properties? (And on a side note, is there a way to change the icon?)
-
DeadHead almost 15 yearsIs this an executable you are compiling, or an executable you do not have access to the source code of?
-
Admin almost 15 yearsThis is an executable I've already compiled from C++ code.
-
mmx almost 15 years@Keand64: If you want to change it by hand, you can use File -> Open in Visual Studio to open the exe file and alter the resources easily.
-
-
merkuro almost 15 years@Keand64 You find additionally information on MSDN/VERSIONINFO msdn.microsoft.com/en-us/library/aa381058.aspx However I can try to shortly describe how it works for me in C (not sure if this is the preferred method in c++, but I didn't now about that you are doing this in C++). I add a resource file (eg. main.rc) to my project, add the code from above and edit it accordingly (see msdn). After a recompile my .exe file contains all the information. If I remember correctly in .NET you can do the same with the [assembly: AssemblyTitle("title")] command.
-
abelito almost 12 yearsAlso, if you happen to be using MinGW (like I am), instead of using rc to compile your resource file which will be linked to your exe to provide this information, you should use windres: mingw.org/wiki/MS_resource_compiler . The MSDN link and that link should be enough to get your adding this extra info to your EXEs.
-
Danny Beckett over 10 yearsAfter creating a
.rc
file like this, you can use GoRC to compile it to a.res
file usinggorc /fo Resources.res Resources.rc
. You can then use Resource Hacker to add it to an existing.exe
usingResHacker -add prog.exe, prog.exe, Resources.res,,,
(taken from my answer here) -
dns almost 9 yearsThis is not an answer. The asker want solution in C WinAPI, not .NET C#.
-
ashes999 over 6 years
rcedit
is pretty limited in terms of the properties it can set. -
g.breeze over 4 yearsyou can set everything with this tool see github.com/electron/rcedit/issues/2#issuecomment-111470339
-
AbhishekS over 2 yearsthis worked for me however it removes Digital Signatures property of Executable
-
a paid nerd over 2 years@AbhishekS probably because any signatures would be invalid following a modification. You might need to run something like SignTool.exe