begin process at 2012 02 14 15:49:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Système

 > 

Connaitre la version d'un EXE quelconqu


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Connaitre la version d'un EXE quelconqu

mardi 29 mars 2005 à 09:51:11 | Connaitre la version d'un EXE quelconqu

ilbrec

Bonjour,
je souhaite mettre à jour un prog que j'ai fait mais uniquement si celui-ci n'est pas à jour.
Je récupère de mon prog sa version et tout et tout (app.version, ...). Mais je voudrais savoir s'il est possible de récupérer un numéro de version d'une appli externe, genre on désire savoir si Excel est dans la version 9 ou 10 (mais attention je me fiche d'excel, c'est juste un exemple).

Je vous remercie par avance.

Ilbrec
mardi 29 mars 2005 à 13:48:13 | Re : Connaitre la version d'un EXE quelconqu

jack

Administrateur CodeS-SourceS
Réponse acceptée !

Je te colle le module qui me sert à ... ce que tu demandes (mais on doit bien trouver ça dans les sources de vbfrance ...) :

Option Explicit

Private Type VS_FIXEDFILEINFO
   dwSignature As Long
   dwStrucVersionl As Integer     '  e.g. = &h0000 = 0
   dwStrucVersionh As Integer     '  e.g. = &h0042 = .42
   dwFileVersionMSl As Integer    '  e.g. = &h0003 = 3
   dwFileVersionMSh As Integer    '  e.g. = &h0075 = .75
   dwFileVersionLSl As Integer    '  e.g. = &h0000 = 0
   dwFileVersionLSh As Integer    '  e.g. = &h0031 = .31
   dwProductVersionMSl As Integer '  e.g. = &h0003 = 3
   dwProductVersionMSh As Integer '  e.g. = &h0010 = .1
   dwProductVersionLSl As Integer '  e.g. = &h0000 = 0
   dwProductVersionLSh As Integer '  e.g. = &h0031 = .31
   dwFileFlagsMask As Long        '  = &h3F for version "0.42"
   dwFileFlags As Long            '  e.g. VFF_DEBUG Or VFF_PRERELEASE
   dwFileOS As Long               '  e.g. VOS_DOS_WINDOWS16
   dwFileType As Long             '  e.g. VFT_DRIVER
   dwFileSubtype As Long          '  e.g. VFT2_DRV_KEYBOARD
   dwFileDateMS As Long           '  e.g. 0
   dwFileDateLS As Long           '  e.g. 0
End Type

Private Declare Function GetFileVersionInfo Lib "Version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long
Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long
Private Declare Function VerQueryValue Lib "Version.dll" Alias "VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, ByVal Source As Long, ByVal length As Long)
'

Public Function VersionEXE(ByVal Fichier As String) As String

    ' Renvoie la version d'un executable sous la forme   X.Y.Z
    ' (issu de API-Guide)

    Dim rc As Long, lDummy As Long, sBuffer() As Byte
    Dim lBufferLen As Long, lVerPointer As Long, udtVerBuffer As VS_FIXEDFILEINFO
    Dim lVerbufferLen As Long
   
    On Error GoTo Erreur
    VersionEXE = "0.0.0"
   
    '*** Get size ****
    lBufferLen = GetFileVersionInfoSize(Fichier, lDummy)
    If lBufferLen < 1 Then Exit Function
   
    '**** Store info to udtVerBuffer struct ****
    ReDim sBuffer(lBufferLen)
    rc = GetFileVersionInfo(Fichier, 0&, lBufferLen, sBuffer(0))
    rc = VerQueryValue(sBuffer(0), "\", lVerPointer, lVerbufferLen)
    MoveMemory udtVerBuffer, lVerPointer, Len(udtVerBuffer)

    '**** Determine File Version number ****
    ' Original
    'VersionEXE = Cstr(udtVerBuffer.dwFileVersionMSh) & "." & _
                 Cstr(udtVerBuffer.dwFileVersionMSl) & "." & _
                 Cstr(udtVerBuffer.dwFileVersionLSh) & "." & _
                 Cstr(udtVerBuffer.dwFileVersionLSl)
    ' Modifié : le LSh est tjrs à 0
    VersionEXE = CStr(udtVerBuffer.dwFileVersionMSh) & "." & _
                 CStr(udtVerBuffer.dwFileVersionMSl) & "." & _
                 CStr(udtVerBuffer.dwFileVersionLSl)
    
    Exit Function
   
Erreur:
    VersionEXE = "0.0.0"
End Function

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)



Cette discussion est classée dans : exe, version, jour, connaitre, quelconqu


Répondre à ce message

Sujets en rapport avec ce message

Mise A Jour svp j'ai besoin d'aide [ par diablamanshadow ] bonjour a vous,alors vla mon petit mais vraiment petit probleme ;-)je cherche a faire un systeme de mise a jour dans mes logiciels donc j'aimerais un Comment connaitre le nombre de jour sur l'année d'une date ? [ par njac ] salut, Je voudrai connaître à partir d'une date, son nombre de jours sur l'année, exemple: 31/12/2004, son nombre de jours est 365 sur l'année. Y a t' Connaitre adresse fichier [ par Phoenix ] Bonjour. Voila j'aimerais savoir comment faire pour connaître l'adresse de mon executable.Par exemple mon .exe se trouve dans C:\Programes Files\....\ Setup de mise à jour en .NET [ par scortex84 ] Bonjour,pour déployer nos applis, on a besoin d'un setup. Avec VB.net, cela se fait très rapidement et créer un setup est un jeu d'enfant.Mais le blem connaitre la version d'une autre application VB [ par fvajol ] Je souhaterais créer une application qui va récupérer le numéro de version d'une autre application. Et ce dans le but de mettre à jour cette autre app Connaitre le nombre de jour [ par dork_maule ] J'ai un champs texbox avec un date et un deuxiéme textbox avec une deuxiéme date.Comment peut-on faire pour connaitre le NOMBRE de jour qui s'est écou Service & modules externes [ par RPG3000 ] Hello World!Vala je suis entrain de faire un programme en VB. La version finale sera dotée d'un programme de mise à jour. Dans le répertoire du progra Update de mon programme vb6! [ par clubberzZ ] Bonjour à tous,Depuis longtemps je fais des recherches sur se sujet sans réponse... Je voudrais faire un udpate de mon programme (.exe), enfet qu'il v connaitre la langue de système d'exploitation [ par pOusSinUs ] Bonjour, j'aimerais savoir comment faire pour connaitre la langue du système d'exploitation. J'arrive a connaitre la version de l'OS mais pas si c'est Mise à jour d'un exe [ par crn_c21 ] Bonjour à tous,Je développe en VB6 une application qui se connecte sur un serveur SQL2000. Au lancement de l'application,il y a connexion sur le servu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,086 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales