2009-06-20 37 views
24

Cuando creo un archivo .exe, puedo hacer clic con el botón derecho y acceder a propiedades-> detalles. Entonces consigo una lista como:¿Cómo cambiar las propiedades de un ejecutable? (Windows)

File Description | 
Type    | Application 
File Version  | 
Product Name  | 
Product Version | 
Copyright  | 
Size    | 18.0 KB 
Date Modified | 6/16/2009 8:23 PM 
Language   | 

¿Cómo puedo cambiar estas propiedades? (Y en una nota al margen, ¿hay una manera de cambiar el icono?)

+2

Es este un ejecutable está compilando, o un ejecutable al que no tienes acceso al código fuente? – DeadHead

+1

Este es un ejecutable que ya he compilado a partir del código C++. –

+1

@ Keand64: si desea cambiarlo a mano, puede usar Archivo -> Abrir en Visual Studio para abrir el archivo exe y modificar los recursos fácilmente. –

Respuesta

25

Si está utilizando C/Win32 se puede añadir algo como esto a su proyecto encapsulado en un fichero * .rc (recurso):

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 
    } 
} 
+4

¿Podría elaborar un poco? –

+4

@ Keand64 También encontrará información en MSDN/VERSIONINFO http://msdn.microsoft.com/en-us/library/aa381058.aspx Sin embargo, puedo intentar describir brevemente cómo funciona para mí en C (no estoy seguro de si este es el método preferido en C++, pero no sabía ahora que está haciendo esto en C++). Agrego un archivo de recursos (por ejemplo, main.rc) a mi proyecto, agrego el código de arriba y lo edito en consecuencia (vea msdn). Después de recompilar mi archivo .exe contiene toda la información. Si recuerdo correctamente en .NET, puede hacer lo mismo con el comando [assembly: AssemblyTitle ("title")]. – merkuro

+0

Además, si está usando MinGW (como yo), en lugar de usar rc para compilar su archivo de recursos que se vinculará con su exe para proporcionar esta información, debe usar los resguardo de los cables: http: //www.mingw. org/wiki/MS_resource_compiler. El enlace de MSDN y ese enlace deberían ser suficientes para que agregue esta información adicional a sus EXE. – abelito

6

Este es un recurso de información de versión de archivo simple. Para archivos ya existentes puede editar esta información con cualquier editor de recursos (por ejemplo, Resource Hacker, está desactualizado, pero sigue siendo bueno). Puede cambiar el ícono de esta manera también.

Si crea su propia aplicación, la configuración dependerá de la herramienta que esté utilizando. Por ejemplo, en Visual Studio debe mirar las propiedades del proyecto.

-1

Para .NET, Google para obtener información de "montaje atributos de configuración" en qué atributos están disponibles. A continuación, utilice los atributos como ...

using System.Reflection; // Needed to get to the attributes. 

[assembly:AssemblyTitle("My File Description")] 
[etc.] 
+7

Esto no es una respuesta . El asker quiere una solución en C WinAPI, no en .NET C#. – dns

2

No tiene que codificar nada. Si está utilizando Visual Studio, esta es la manera más simple:

Según la solución de su proyecto, hay una carpeta llamada Propiedades, amplíela y haga doble clic en un archivo llamado AssemblyInfo.cs y puede cambiar la cadena predeterminada allí.

+6

No es una respuesta. El asker quiere la solución en C WinAPI, no en C#. – dns

+0

No puede editar la propiedad EXE (WinAPI) haciendo doble clic en VS. Debe codificar directamente en el archivo de recursos (consulte la respuesta de @merkuro). Y el asker de hecho quiere la respuesta en WinAPI porque utilizó el programa compilado C++ en la sección de comentarios. – dns

7

Muy fácil si está utilizando Visual Studio:

  • clic derecho en la carpeta 'Archivos de recursos' en el proyecto
  • Haga clic en 'Añadir' y luego 'Recursos'
  • Elija 'Version' de el cuadro de diálogo emergente

A continuación, puede hacer doble clic en el archivo para abrirlo en Visual Studio, y obtendrá un práctico editor para cambiar los valores.

Sus valores se vinculan automáticamente en el EXE.

4

Si desea cambiar el DescripcionArchivo o cualquier otra cadena recurso de versión de un archivo ejecutable compilado, rcedit (una pequeña herramienta de código abierto) lo hace con bastante facilidad:

$ rcedit MyApp.exe --set-version-string FileDescription "My Awesome App" 
+1

'rcedit' es bastante limitado en términos de las propiedades que puede establecer. – ashes999

Cuestiones relacionadas