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 🙂


  • Mod

    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.


  • Mod

    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 Blocks 😉

    Moment 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.0

    Gruess



  • 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. 😉


Log in to reply