Aller au contenu

Recettes et exemples de l'API VBA pour XLS Padlock

Cette rubrique propose une collection complète d’extraits de code VBA (« recettes ») pour un contrôle avancé de votre application protégée à l’exécution. À l’aide de l’API VBA de XLS Padlock, vous pouvez récupérer des informations système, gérer l’enregistrement et le chargement, personnaliser l’interface utilisateur et interagir avec les fonctionnalités en ligne.

Les deux principaux objets de l’API sont : Application.COMAddIns("GXLSForm.GXLSFormula").Object pour la plupart des informations à l’exécution, et Application.COMAddIns("GXLS.GXLSPLock").Object pour les opérations liées à l’enregistrement.

Chaque recette ci-dessous fournit une fonction ou une sous-routine VBA prête à l’emploi.


Informations sur l’application et le système

Section titled “Informations sur l’application et le système”

Ces recettes vous aident à récupérer des informations sur l’environnement et l’état de l’application.

Utilisez ceci pour confirmer que votre code s’exécute bien au sein d’une application protégée créée par XLS Padlock.

Public Function XLSPadlockAvailable() As Boolean
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
If Not XLSPadlock Is Nothing Then
XLSPadlockAvailable = XLSPadlock.IsProtected()
Else
XLSPadlockAvailable = False
End If
End Function

Obtenir le nom de fichier EXE de l’application

Section titled “Obtenir le nom de fichier EXE de l’application”

Récupère le nom du fichier .exe en cours d’exécution.

Public Function GetEXEFilename() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetEXEFilename = XLSPadlock.PLEvalVar("EXEFilename")
Exit Function
Err:
GetEXEFilename = ""
End Function

Obtenir la version du fichier EXE et du produit

Section titled “Obtenir la version du fichier EXE et du produit”

Récupère les chaînes de version que vous avez définies dans la section « EXE Version Info » de XLS Padlock.

Public Function ReadVersionInfo(infoType As String) As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadVersionInfo = XLSPadlock.PLEvalVar(infoType)
Exit Function
Err:
ReadVersionInfo = ""
End Function

Utilisation : ReadVersionInfo("ProductVersion") renvoie la Product Version, et ReadVersionInfo("FileVersion") renvoie la File Version.

Récupère le System ID unique requis pour les Activation Keys verrouillées sur le matériel (hardware-locked). Il s’agit de l’identifiant que vos clients vous enverront.

Public Function ReadSystemID() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadSystemID = XLSPadlock.PLEvalVar("SystemID")
Exit Function
Err:
ReadSystemID = ""
End Function

Obtenir les paramètres de ligne de commande

Section titled “Obtenir les paramètres de ligne de commande”

Récupère les paramètres de ligne de commande passés au fichier .exe de votre application.

Public Function ReadParamStr(index As Integer) As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadParamStr = XLSPadlock.PLEvalVar("ParamStr" & index)
Exit Function
Err:
ReadParamStr = ""
End Function

Utilisation : ReadParamStr(1) renvoie le premier paramètre, ReadParamStr(2) le deuxième, et ainsi de suite.


Enregistrement et chargement des classeurs

Section titled “Enregistrement et chargement des classeurs”

Gérez les fichiers d’enregistrement sécurisés (.xlsc ou .xlsce) par programmation.

Obtenir le chemin du fichier d’enregistrement actuel

Section titled “Obtenir le chemin du fichier d’enregistrement actuel”

Récupère le chemin complet du fichier d’enregistrement sécurisé actuellement chargé.

Public Function GetSecureWorkbookFilename() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
GetSecureWorkbookFilename = XLSPadlock.GetSaveFilename()
Exit Function
Err:
GetSecureWorkbookFilename = ""
End Function

Obtenir le chemin du dossier d’enregistrement local

Section titled “Obtenir le chemin du dossier d’enregistrement local”

Récupère le chemin du dossier local où XLS Padlock stocke les paramètres de votre application et les fichiers d’enregistrement sécurisés.

Public Function GetStoragePath() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetStoragePath = XLSPadlock.PLEvalVar("SPath")
Exit Function
Err:
GetStoragePath = ""
End Function

Exécuter du code VBA après l’enregistrement

Section titled “Exécuter du code VBA après l’enregistrement”

XLS Padlock peut appeler automatiquement la sous-routine XLSPadlock_OnAfterSave après qu’un utilisateur a enregistré son travail. Ceci est utile pour la journalisation, l’affichage d’un message de confirmation ou d’autres actions postérieures à l’enregistrement.

Sub XLSPadlock_OnAfterSave(SaveFilename As String)
MsgBox "The workbook has been successfully saved as: " & SaveFilename
End Sub

Ouvrir un fichier d’enregistrement existant avec VBA

Section titled “Ouvrir un fichier d’enregistrement existant avec VBA”

Ouvrez un fichier d’enregistrement sécurisé par programmation. Notez que cela chargera le fichier dans une nouvelle instance d’Excel.

Public Sub LoadXLSPadlockSaveFile(FilePath As String)
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
If Not XLSPadlock Is Nothing Then
XLSPadlock.PLOpenSaveFile FilePath
End If
End Sub
' Example of a caller function that shows a file browser:
Sub Load_Old_Save()
Dim strFileToOpen As String
strFileToOpen = Application.GetOpenFilename( _
Title:="Please choose a save file to open", _
FileFilter:="Save Files (*.xlsc),*.xlsc")
If strFileToOpen <> "False" Then
LoadXLSPadlockSaveFile strFileToOpen
End If
End Sub

Suggérer un nom de fichier pour la boîte de dialogue d’enregistrement

Section titled “Suggérer un nom de fichier pour la boîte de dialogue d’enregistrement”

Définit le nom de fichier par défaut qui apparaît dans la boîte de dialogue « Save As ».

Public Sub SetSecureWorkbookFilename(Filename As String)
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
If Not XLSPadlock Is Nothing Then
XLSPadlock.SetDefaultSaveFilename Filename
End If
End Sub
' Example: Set the default name to "my save.xlsc"
' Call SetSecureWorkbookFilename("D:\My Documents\my save.xlsc")

Enregistrer une copie sécurisée sans invite

Section titled “Enregistrer une copie sécurisée sans invite”

Enregistrez une copie sécurisée du classeur directement vers un chemin de fichier spécifié, sans afficher la boîte de dialogue « Save As ».

Public Function SaveSecureWorkbookToFile(Filename As String) As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
SaveSecureWorkbookToFile = XLSPadlock.SaveWorkbook(Filename)
Exit Function
Err:
SaveSecureWorkbookToFile = False
End Function
' Example: Save the workbook directly
' If SaveSecureWorkbookToFile("D:\My Documents\my save.xlsc") Then
' MsgBox "Workbook saved successfully."
' End If

Migrer les données utilisateur depuis une version précédente

Section titled “Migrer les données utilisateur depuis une version précédente”

Si vous publiez une nouvelle version de votre classeur, vous pourriez avoir besoin d’importer des données depuis un fichier d’enregistrement créé avec une version précédente.

Découvrez comment migrer les données utilisateur avec VBA


Personnalisez les éléments d’interface tels que les boîtes de dialogue.

Masquer par programmation les boîtes de dialogue d’attente et de chargement

Section titled “Masquer par programmation les boîtes de dialogue d’attente et de chargement”

Vous pouvez masquer la boîte de dialogue « Loading workbook, please wait… » à l’aide d’un appel VBA plutôt que d’attendre sa fermeture automatique.

Public Sub HideLoadingDialog()
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
If Not XLSPadlock Is Nothing Then
' A call with Option "3" and Value "0" hides the dialog.
XLSPadlock.SetOption Option:="3", Value:="0"
End If
End Sub

Interagissez avec les fonctionnalités en ligne de XLS Padlock.

Vérifier la présence d’une connexion Internet

Section titled “Vérifier la présence d’une connexion Internet”

Teste si une connexion Internet active est disponible sur l’ordinateur de l’utilisateur.

Public Function IsInternetAvailable() As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
IsInternetAvailable = (XLSPadlock.PLEvalVar("InternetConnected") = "1")
Exit Function
Err:
IsInternetAvailable = False
End Function

Récupère un hachage du jeton d’activation renvoyé par le serveur web après une activation en ligne réussie.

Public Function GetValidationToken() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetValidationToken = XLSPadlock.PLEvalVar("ValidationToken")
Exit Function
Err:
GetValidationToken = ""
End Function

Vérifier si la validation en ligne a réussi

Section titled “Vérifier si la validation en ligne a réussi”

Obtient le résultat de la dernière tentative de validation en ligne.

Public Function IsValidationOK() As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
IsValidationOK = (XLSPadlock.PLEvalVar("ValidationSuccess") = "1")
Exit Function
Err:
IsValidationOK = False
End Function