Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    Comment récupérer la version d'un exécutable ?
    Bonjour,

    J'ai trouvé pleins de codes sources qui permettent de récuperer le N° de version d'un .EXE, mais aucun ne marche avec Winword.exe.
    Ces informations sont pourtant présentes dans le programme et visibles si on fait un clic droit dessus.
    Existe t'il une astuce ou un pb de traduction ?

    Merci pour votre aide.

  2. #2
    Membre averti
    J'utilise pour ma part TFileVersionInfo. Je n'ai pas testé avec Ms Word (puisque j'utilise Open Office), mais tu peux toujours essayer s'il ne fait pas déjà partie des "pleins de codes sources" que tu as déjà testé (on le trouve chez http://torry.net/ si je me souviens bien).
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  3. ###raw>post.musername###
    Membre actif
    Me retourne extactement le N° de version que si je fait "Propriete" sur winword.exe, soit 11.0.6502.0
    Par contre est different du menu "A propos de Microsoft office word" soit
    11.6502.6408

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure TForm2.Button1Click(Sender: TObject);
    VAR
      InfoSize: DWORD;
      lpdwHandle: Cardinal;
      VerBuf: Pointer;
      PFI: PVSFixedFileInfo;
      VerSize: DWORD;
      Fichier,Version:String;
    begin
      Fichier:='C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE';
      Version:='';
      InfoSize := GetFileVersionInfoSize(Pchar(Fichier), lpdwHandle);
      if InfoSize <> 0 then
      begin
        GetMem(VerBuf, InfoSize);
        try
          if GetFileVersionInfo(Pchar(Fichier), lpdwHandle, InfoSize, VerBuf) then
            if VerQueryValue(VerBuf, '\', Pointer(PFI), VerSize) then
              BEGIN
                WITH PFI^ DO
                  BEGIN
                    Version:=IntToStr(dwFileVersionMS shr 16)+'.'+IntToStr(dwFileVersionMS AND $FFFF);
                    Version:=Version+'.'+IntToStr(dwFileVersionLS shr 16)+'.'+IntToStr(dwFileVersionLS AND $FFFF);
                  END;
              END;
        finally
          FreeMem(VerBuf);
        end;
      end;
      showmessage(Version)
    end;
      0  0

###raw>template_hook.ano_emploi###