Announcement

Collapse
No announcement yet.

Versionsinformationen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Versionsinformationen

    Wie kann ich meine Versionsinformationen aus dem Projekt in meinem Startlogo anzeigen?

  • #2
    Hallo,<p>

    gibt es dazu nicht schon ein Beitrag mit Quelltext im Forum??? (->Win32 API)<p>

    Einfach mal unter 'Versionsinformation' suchen.<p>

    Ins Startlogo muß man dieses dann halt noch einbauen...<p>

    Gruß,<br>
    Marku

    Comment


    • #3
      Danke für Deinen Tip, aber ich kann nichts finden. Kannst Du mir irgendwie weiterhelfen

      Comment


      • #4
        Hallo,<p>

        das hier ist die Kopie vom Beitrag von NicoDE, den ich meinte ("Auslesen der eigenen Programmversion und Build#" unter Win32 API / Delphi):<p><p>
        <PRE><TT><br>"<B>procedure</B> TForm1.Button1Click(Sender: TObject);<br><B>var</B><br> aFileName: <B>array</B> [0..MAX_PATH] <B>of</B> Char;<br> pdwHandle: DWORD;<br> nInfoSize: DWORD;<br> pFileInfo: Pointer;<br> pFixFInfo: PVSFixedFileInfo;<br> nFixFInfo: DWORD;<br> pVarFInfo: PChar;<br> nVarFInfo: DWORD;<br> nVarTrans: DWORD;<br> aVarFPath: <B>array</B> [0..MAX_PATH] <B>of</B> Char;<br><B>begin</B><br> GetModuleFileName(0, aFileName, MAX_PATH);<br> pdwHandle := 0;<br> nInfoSize := GetFileVersionInfoSize(aFileName, pdwHandle);<br> <B>if</B> nInfoSize <> 0 <B>then</B><br> pFileInfo := GetMemory(nInfoSize)<br> <B>else</B><br> pFileInfo := <B>nil</B>;<br> <B>if</B> Assigned(pFileInfo) <B>then</B><br> <B>try</B><br> <B>if</B> GetFileVersionInfo(aFileName, pdwHandle, nInfoSize, pFileInfo) <B>then</B><br> <B>begin</B><br> <FONT COLOR="#000080"><I>// den vordefinierten Info-Block holen, der in jeder</I></FONT><br> <FONT COLOR="#000080"><I>// Versionsinformation enthalten sein sollte.</I></FONT><br> pFixFInfo := <B>nil</B>;<br> nFixFInfo := 0;<br> <B>if</B> VerQueryValue(pFileInfo, <FONT COLOR="#0000FF">'\'</FONT>, Pointer(pFixFInfo), nFixFInfo) <B>then</B><br> <B>begin</B><br> <FONT COLOR="#000080"><I>// Bei von Delphi erzeugten Info-Blöcken sind die Dateiversion</I></FONT><br> <FONT COLOR="#000080"><I>// und die Produktversion im FixedInfo-Block immer gleich.</I></FONT><br> Label1.Caption := Format(<FONT COLOR="#0000FF">'Version (fix): %d.%d.%d.%d.'</FONT>,<br> [HiWord(pFixFInfo^.dwFileVersionMS),<br> LoWord(pFixFInfo^.dwFileVersionMS),<br> HiWord(pFixFInfo^.dwFileVersionLS),<br> LoWord(pFixFInfo^.dwFileVersionLS)]);<br> <B>end</B>;<br> <FONT COLOR="#000080"><I>// Erst die Sprache(n) ermitteln und dann abfragen</I></FONT><br> pVarFInfo := <B>nil</B>;<br> nVarFInfo := 0;<br> <B>if</B> VerQueryValue(pFileInfo, <FONT COLOR="#0000FF">'\VarFileInfo\Translation'</FONT>,<br> Pointer(pVarFInfo), nVarFInfo) <B>then</B><br> <B>begin</B><br> <FONT COLOR="#000080"><I>// erste Sprache holen</I></FONT><br> nVarTrans := HiWord(PDWORD(pVarFInfo)^)<br> <B>or</B> (Word(PDWORD(pVarFInfo)^) <B>shl</B> 16);<br> wvsprintf(aVarFPath, <FONT COLOR="#0000FF">'\StringFileInfo\%8.8x\'</FONT>, PChar(@nVarTrans));<br> <FONT COLOR="#000080"><I>// Standard-Wert 'Dateiversion' abfragen</I></FONT><br> <FONT COLOR="#000080"><I>// (Standardisierte Werte sind: CompanyName FileDescription FileVersion</I></FONT><br> <FONT COLOR="#000080"><I>// InternalName LegalCopyright OriginalFilename ProductName</I></FONT><br> <FONT COLOR="#000080"><I>// ProductVersion - wobei diese für alle Sprachen gelten)</I></FONT><br> lstrcat(aVarFPath, <FONT COLOR="#0000FF">'FileVersion'</FONT>);<br> pVarFInfo := <B>nil</B>;<br> nVarFInfo := 0;<br> <B>if</B> VerQueryValue(pFileInfo, aVarFPath, Pointer(pVarFInfo), nVarFInfo) <B>then</B><br> <B>begin</B><br> Label2.Caption := <FONT COLOR="#0000FF">'Dateiversion (var): '</FONT> + TCaption(pVarFInfo);<br> <B>end</B>;<br> <B>end</B>;<br> <B>end</B>;<br> <B>finally</B><br> FreeMemory(pFileInfo);<br> <B>end</B>;<br><B>end</B>;<br></TT></PRE><p>
        Grundsätzlich gibt es also mindestens einen festdefinierten Infoblock, den man erfragen kann (deren Werte in Delphi im Optionen-Dialog in der oberen Hälfte eingestellt werden).<br>
        Und es gibt eine Liste von Info-Blöcken in verschiedenen Sprachen, die in einer Tabelle stehen (der untere Teil des Dialogs - wobei Delphi nur einen Sprachenblock anlegen

        Comment


        • #5
          ..ann/will).<br>
          Bei den Einträgen in den Sprachen-Blöcken gibt es bestimmte standardisierte Einträge (die übrigens immer englisch sind)...
          <p>
          Gruß Nico"<p>

          Ich hoffe er hilft Dir weiter! Diesen Code einfach in das OnCreate-Ereignis der SplashForm einfügen und ausgeben.<p>
          Gruß,<br>
          Marku

          Comment


          • #6
            Vielen Dank, ich probier es gleich aus!

            Gruß Andrea

            Comment

            Working...
            X