Datei-Eigenschaften (File description, ...)
-
Hallo zusammen,
Wie kann ich die Datei Eigenschaften (speziell;
- File description
- File version
- Product Name
- Product version
- Copyright)verändern?
Gruss
-
Frag im passenden Betriebssystemforum
-
Hi,
Ich dachte das könnte man im Programm-Code direkt reinschreiben (quasi wie bei .NET im AssemblyInfo File).
Könntest du mich bitte an den passenden Ort verschieben?
OS: Win7
IDE: Code Blocks
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Properties__ schrieb:
Hi,
Ich dachte das könnte man im Programm-Code direkt reinschreiben (quasi wie bei .NET im AssemblyInfo File).
Könntest du mich bitte an den passenden Ort verschieben?
OS: Win7
IDE: Code BlocksMoment mal. Du willst nicht fremde Dateien verändern, sondern die Daten deiner eigenen Executable? Dann habe ich die Frage falsch verstanden. Das gehört dann in's Compiler&IDE Forum. Entschuldigung an die WInAPI-Moderatoren.
-
Exakt!
Ich möchte die Datei Beschreibung, etc. meines eigenen Programmes verändern.
Wie bereits erwähnt; Bei Visual Studio gab es ein Extra - File dafür (so weit ich weiss aber nur unter der Bedigung dass man das .NET Framework einsetzt).Bei Code Blocks finde ich nichts passendes.
Ein externes Tool dass dies für mich erledigt wäre zwar umständlich, aber auch akzeptabel.Gruess
-
Du musst eine rc-Datei Deiner EXE/DLL hinzufügen und dort die VersionInfo Ressource hinzufügen.
Und das gehört schon hierher, da es Windows spezifisch ist...
-
Hallo Jochen,
Vielen Dank für die Antwort, das Ganze hat schon sehr gut geklappt (ich habe eine Beispiel für eine solche Datei im WWW gefunden; http://www.cplusplus.com/forum/windows/6687/).
Leider wird bei mir die 'File Version' nicht angepasst.
Ich nehme an der Attributs-Name ist falsch angegeben.
Wie ist das noch zu lösen?Ansonsten klappen alle Eigenschaften.
Gruess,
-
Was verstehst Du unter "nagepasst"?
Du hast aber beachtet, dass DU Komma anstelle von Punkt eingeben musst?
-
Mit 'angepasst' verstehe ich dass die Values, die ich in der .rc Datei angebe auch unter 'Details' bei der .exe dann angezeigt werden.
Wie meinst du, ich muss ein Komma anstatt einen Punkt angeben?
Zwischen dem Attribut-Namen & dem Value?Mein File sieht zZt folgendermassen aus;
1 VERSIONINFO BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "FFFF0000" BEGIN VALUE "FileVersion", "1.1.0.1101" VALUE "ProductVersion", "1.1.0.1101" VALUE "CompanyName", "nvm AG" VALUE "FileDescription", "nvm Product" VALUE "InternalName", "nvm Name" VALUE "LegalCopyright", "Copyright (c) nvm 2011" VALUE "OriginalFilename", "foo.exe" VALUE "ProductName", "bar" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0xFFFF, 0x0000 END END
Im Detail Fenster werden alle Eigenschaften richtig angezeigt ausser 'File Version'.
Diese bleibt auf 0.0.0.0Gruess
-
Im Explorer (zumindest unter XP) wird in der Statusleiste nicht die StringFileInfo angezeigt, diese sieht man nur im Dialog Eigenschaften->Version.
So in etwa müsste es gehen:1 VERSIONINFO FILEVERSION 1,1,0,1101 PRODUCTVERSION 1,1,0,1101 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "FFFF0000" BEGIN VALUE "FileVersion", "1.1.0.1101" VALUE "ProductVersion", "1.1.0.1101" VALUE "CompanyName", "nvm AG" VALUE "FileDescription", "nvm Product" VALUE "InternalName", "nvm Name" VALUE "LegalCopyright", "Copyright (c) nvm 2011" VALUE "OriginalFilename", "foo.exe" VALUE "ProductName", "bar" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0xFFFF, 0x0000 END END
-
Ein VersionInfo-Block sieht so aus:
VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "CompanyName", "TODO: <Company name>" VALUE "FileDescription", "MFCDialog2010" VALUE "FileVersion", "1.0.0.1" VALUE "InternalName", "MFCDialog2010.exe" VALUE "LegalCopyright", "TODO: (c) <Company name>. All rights reserved." VALUE "OriginalFilename","MFCDialog2010.exe" VALUE "ProductName", "TODO: <Product name>" VALUE "ProductVersion", "1.0.0.1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x0409, 1200 END END
-
Hat geklappt!
Vielen Dank euch allen.