recupérer version d'un fichier (VB)

  • Auteur de la discussion manik971
  • Date de début

manik971

Habitué
est ce qu'il existe une fonction en VB qui permet de récupérer le numéro de version d'un fichier (.txt,.exe,...)
en sachant que j'utilise MS visual basic 2005 express (framework 2.0)

ou faut il que je créé ma propre fonction ???

merci d'avance =)
 

zeb

Modérateur
Je ne vois pas ce que tu appelles la version d'un fichier .txt

Pour les exécutables, rien n'existe en VB.
[strike]Il faut[/strike] On peut le faire avec l'API générique :
Jette un oeil du côté des fonction suivantes [fixed]GetFileVersionInfo
GetFileVersionInfoSize
VerQueryValue[/fixed]

EDIT:
On peut aussi le faire avec l'API du framework .NET.
 

manik971

Habitué
c'est vrai pour le .txt je me suis mal exprimé, je voulais récupérer à l'intérieur de ce fichier texte les derniers caractères de la première ligne
(exemple : blabla blabla version : 3.14)

sinon pour le .exe je vais aller voir ce que tu m'a dit.
 

zeb

Modérateur
Nan mais tu crois vraiment qu'il existe une fonction en VB qui s'appelle GetLastCharOfFirstLine ? :/
 

manik971

Habitué
Non pour aller lire le fichier txt et récupérer les 3 derniers caractères j'ai fait ma fonction moi-même ça c'est pas un problème,

Mais j'ai toujours pas réussi à faire marcher le prog qui récupère le numéro de version d'un .exe,
j'ai cherché avec les 3 fonctions que tu m'as donné mais j'arrive pas à les faire marcher, sinon sur le net il donne des codes mais ils sont pas lançables, trop de bug...

et j'ai pas trouver un endroit où il explique bien comment les utiliser avec un bon exemple.. :cry:
 

zeb

Modérateur
Cherche mieux.


http://support.microsoft.com/?scid=kb%3Ben-us%3B160042&x=6&y=17
 

manik971

Habitué
j'ai trouver un objet qui permet de retourner le numéro de version de l'application actuelle : "My.Application.Info.Version"

et je me demandais si je pourrais utiliser ça pour trouver la version d'autre logiciel
 

manik971

Habitué
YATTA

voici la solution :

Dim versionInfo As FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo("nomChemin")

vous pouvez récupérer un paquet de truc concernant le .exe
num version => versionInfo.FileVersion
description => versionInfo.FileDescription
etc...



 

zeb

Modérateur
:lol:

Ça, c'est du .NET, mais ça marche très bien aussi.

Moi, j'ai appris à tout faire avec l'API "C" de Windows, et je m'en contentais.
(A part ça, l'exemple de Crosoft n'était pas pertinent ?)

Il va falloir que je revois ma façon de répondre. :/

EDIT: A ma décharge, l'API C de Windows existe sur tous les Windows, pas le framework .NET
Mais c'est une façon de faire moderne, et qui a de l'avenir, aussi je t'encourage à continuer comme ça. :)
 

manik971

Habitué
ben le mec qui me supervise pour le stage m'a dit d'essayer de faire un maximun sous .NET (2.0) donc je le fait.
et j'ai l'impression que le code est moins lourd aussi qu'en utilisant l'API
 

zeb

Modérateur
Oui, c'est moins lourd.

La programmation .Net, c'est l'avenir sous Windows.
Et puis c'est orienté objet, pour un développeur connaissant java, c'est plus facile que des fonctions C à utiliser en Basic.

Bon stage.
 

manik971

Habitué
Non mais j'aime bien aussi le C, à l'IUT ils nous donné des bases en C,java,SQL,ada,shell,php,xhtml/css,scheme,assembleur,javascript... je crois que c'est tout !

j'aimerais juste savoir bien utiliser une distrib de linux (au moins une), je suis encore très mauvais à ce niveau, j'ai mis en dual boot kubuntu mais je vais pas assez souvent dessus..

sinon pour les différentes distributions, à part l'installation du noyau, si t'en connais une tu t'adaptes facilement à une autre??

kubuntu pour commencer ça va? je compte monter un serv pour des fichiers et un site web, quel distrib il vaut mieux utiliser? celle qu'on connait le mieux?
 

zeb

Modérateur
/!\ Alerte ! Tu es HORS SUJET, Manik.
Linux, et la programmation VB non AUCUN rapport.

Va poser ta question dans Le modo y est très sympa tu verras ;)
 

tarodian

Nouveau membre
Bonjour,

pour l'historique et la solution

en VBA excel il faut employer l'objet filesystemobjet de la librairie microsoft scripting runtime.
cet objet dispose d'une fonction appelé GetFileVersion elle retourne les attributs demandés.

Pour se faire aller dans le menu outil entrée référence puis rechercher microsoft scripting runtime.
ensuite un code du style suivant feras l'affaire
[cpp]
Dim fso As filesystemobject

Dim lfile As file

Dim lfolder As Folder

Set fso = New filesystemobject

'CreateObject("FileSystemObject", "microsoft system runtime")

Set lfolder = fso.GetFolder("D:\SourceMonitor\")

File info as string

For Each lfile In lfolder.Files

fileinfo= lfile.Path &” :” & fso.GetFileVersion(lfile.Path) & vbcrlf

Next
[/cpp]
 

zeb

Modérateur
Bonjour Tarodian,

Ce sujet avait deux ans ! Qu'importe. Tu te mets volontairement hors sujet en parlant de VBA/Excel, peut-on savoir pourquoi ? Par ailleurs, ce que tu proposes, l'utilisation de l'objet FileSystemObject, reste une solution quelque soit le langage : VB, VBA, C/C++, Pascal...

Autre problème bien plus grave. Il y a ici un règlement qui promulgue l'obligation d'utiliser la balise
Code:
 pour publier un bout de programme. Merci de lire et de respecter ce règlement. Il te reste donc à modifier ton message pour le mettre en conformité. [:zeb:4]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 079
Messages
6 716 715
Membres
1 586 247
Dernier membre
MrAzgarIII
Partager cette page
Haut