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.
Vérifier si le classeur est protégé
Section titled “Vérifier si le classeur est protégé”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 IfEnd FunctionObtenir 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 FunctionErr: GetEXEFilename = ""End FunctionObtenir 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 FunctionErr: ReadVersionInfo = ""End FunctionUtilisation : ReadVersionInfo("ProductVersion") renvoie la Product Version, et ReadVersionInfo("FileVersion") renvoie la File Version.
Obtenir le System ID de l’utilisateur
Section titled “Obtenir le System ID de l’utilisateur”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 FunctionErr: ReadSystemID = ""End FunctionObtenir 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 FunctionErr: ReadParamStr = ""End FunctionUtilisation : 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 FunctionErr: GetSecureWorkbookFilename = ""End FunctionObtenir 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 FunctionErr: GetStoragePath = ""End FunctionExé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: " & SaveFilenameEnd SubOuvrir 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 IfEnd 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 IfEnd SubSuggé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 IfEnd 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 FunctionErr: SaveSecureWorkbookToFile = FalseEnd Function
' Example: Save the workbook directly' If SaveSecureWorkbookToFile("D:\My Documents\my save.xlsc") Then' MsgBox "Workbook saved successfully."' End IfMigrer 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
Interface utilisateur
Section titled “Interface utilisateur”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 IfEnd SubActivation et validation en ligne
Section titled “Activation et validation en ligne”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 FunctionErr: IsInternetAvailable = FalseEnd FunctionObtenir le jeton d’activation en ligne
Section titled “Obtenir le jeton d’activation en ligne”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 FunctionErr: GetValidationToken = ""End FunctionVé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 FunctionErr: IsValidationOK = FalseEnd Function