Comment identifier le Service Pack (SP) d’une version de CATIA à l’aide d’une macro VBA, en recherchant une clé dans la base de registre ou par une autre méthode ?
Pour identifier le Service Pack (SP) d’une version de CATIA via une macro VBA, la méthode la plus fiable consiste à lire le contenu d’un fichier spécifique plutôt qu’à chercher dans la base de registre.
Voici la démarche experte :
-
Localisation du fichier de Service Pack :
Le Service Pack installé est généralement indiqué dans un fichier texte nomméLevelSPK.txt. -
Chemin d’accès au fichier :
Ce fichier se trouve dans le répertoire d’installation de CATIA. Le chemin typique est le suivant :
C:\Program Files\Dassault Systemes\BXX\intel_a\
OùBXXreprésente la version principale de CATIA (par exemple,B18pour CATIA V5 R18,B19pour V5 R19, etc.). -
Implémentation VBA :
Vous pouvez utiliser VBA pour lire le contenu de ce fichierLevelSPK.txt.
Voici un exemple de code VBA pour lire le fichier et extraire le numéro du Service Pack :Sub GetCatiaServicePack() Dim filePath As String Dim spVersion As String Dim fileNum As Integer Dim lineFromFile As String Dim installDir As String Dim catiaVersion As String ' Exemple: 'B19' pour V5 R19 ' --- Configuration --- ' Vous devrez peut-être adapter cette partie pour trouver dynamiquement le répertoire d'installation de CATIA ' ou demander à l'utilisateur de le spécifier. ' Pour cet exemple, nous supposons une structure commune. catiaVersion = "B19" ' Remplacez par la version de CATIA concernée installDir = "C:\Program Files\Dassault Systemes\" & catiaVersion & "\intel_a\" filePath = installDir & "LevelSPK.txt" ' --------------------- On Error GoTo ErrorHandler ' Vérifier si le fichier existe If Dir(filePath) = "" Then MsgBox "Le fichier LevelSPK.txt n'a pas été trouvé à l'emplacement : " & filePath, vbExclamation Exit Sub End If ' Ouvrir le fichier en lecture seule fileNum = FreeFile Open filePath For Input As #fileNum ' Lire le contenu ligne par ligne (souvent, le SP est sur la première ligne ou facilement identifiable) Do While Not EOF(fileNum) Line Input #fileNum, lineFromFile ' Le format du fichier peut varier légèrement, mais il contient généralement le numéro du SP ' Exemple: "CATIA V5 R19 SP6" If InStr(lineFromFile, "SP") > 0 Then spVersion = lineFromFile Exit Do ' Sortir dès qu'on trouve une ligne contenant "SP" End If Loop Close #fileNum If spVersion <> "" Then MsgBox "Le Service Pack de CATIA est : " & spVersion, vbInformation Else MsgBox "Impossible de déterminer le Service Pack à partir du fichier.", vbExclamation End If Exit Sub ErrorHandler: MsgBox "Une erreur s'est produite : " & Err.Description, vbCritical If fileNum <> 0 Then Close #fileNum End Sub
Conseils supplémentaires :
- Gestion des erreurs : Assurez-vous d’inclure une gestion des erreurs robuste pour les cas où le fichier n’existe pas ou si les permissions d’accès sont insuffisantes.
- Adaptabilité : Le chemin d’installation peut varier. Il est préférable de rendre le chemin d’accès dynamique ou de le demander à l’utilisateur si le script doit être utilisé sur différentes machines.
- Versions antérieures : Pour des versions très anciennes de CATIA, la méthode pourrait différer, mais pour CATIA V5 et les versions plus récentes,
LevelSPK.txtest la norme.
Cette approche est plus fiable que la recherche dans la base de registre, car la structure de celle-ci peut changer entre les versions de CATIA ou de Windows, tandis que le fichier LevelSPK.txt est une méthode de documentation standardisée par Dassault Systèmes pour les Service Packs.