Ga naar inhoud

VBA-API-kookboek en recepten voor XLS Padlock

Dit onderwerp biedt een uitgebreide verzameling VBA-codefragmenten (“recepten”) voor geavanceerde controle over uw beschermde toepassing tijdens runtime. Met de VBA-API van XLS Padlock kunt u systeeminformatie ophalen, het opslaan en laden beheren, de gebruikersinterface aanpassen en met onlinefuncties communiceren.

De twee belangrijkste API-objecten zijn: Application.COMAddIns("GXLSForm.GXLSFormula").Object voor de meeste runtime-informatie en Application.COMAddIns("GXLS.GXLSPLock").Object voor opslaggerelateerde bewerkingen.

Elk recept hieronder biedt een kant-en-klare VBA-functie of -subroutine.


Deze recepten helpen u informatie op te halen over de omgeving en de status van de toepassing.

Gebruik dit om te bevestigen dat uw code wordt uitgevoerd binnen een door XLS Padlock gemaakte beschermde toepassing.

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

De EXE-bestandsnaam van de toepassing ophalen

Section titled “De EXE-bestandsnaam van de toepassing ophalen”

Haalt de bestandsnaam van het lopende .exe-bestand op.

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

Haalt de versietekenreeksen op die u hebt gedefinieerd in de sectie “EXE Version Info” (EXE-versie-informatie) van 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

Gebruik: ReadVersionInfo("ProductVersion") geeft de Product Version terug en ReadVersionInfo("FileVersion") geeft de File Version terug.

Haalt de unieke System ID op die vereist is voor hardwaregebonden activeringssleutels. Dit is de ID die uw klanten naar u zullen sturen.

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

Haalt de opdrachtregelparameters op die aan het .exe-bestand van uw toepassing zijn doorgegeven.

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

Gebruik: ReadParamStr(1) geeft de eerste parameter terug, ReadParamStr(2) de tweede, enzovoort.


Beheer beveiligde opslagbestanden (.xlsc of .xlsce) programmatisch.

Haalt het volledige pad op naar het beveiligde opslagbestand dat momenteel is geladen.

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

Haalt het pad op naar de lokale map waar XLS Padlock de instellingen van uw toepassing en de beveiligde opslagbestanden bewaart.

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

XLS Padlock kan automatisch de subroutine XLSPadlock_OnAfterSave aanroepen nadat een gebruiker zijn werk heeft opgeslagen. Dit is handig voor logboekregistratie, het tonen van een bevestigingsbericht of andere acties na het opslaan.

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

Open een beveiligd opslagbestand programmatisch. Houd er rekening mee dat het bestand hierbij in een nieuwe instantie van Excel wordt geladen.

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

Een bestandsnaam voorstellen voor het opslagdialoogvenster

Section titled “Een bestandsnaam voorstellen voor het opslagdialoogvenster”

Stelt de standaardbestandsnaam in die wordt weergegeven in het dialoogvenster “Save As” (Opslaan als).

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")

Sla een beveiligde kopie van de werkmap rechtstreeks op onder een opgegeven bestandspad zonder het dialoogvenster “Save As” (Opslaan als) weer te geven.

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

Gebruikersgegevens van een vorige versie migreren

Section titled “Gebruikersgegevens van een vorige versie migreren”

Als u een nieuwe versie van uw werkmap uitbrengt, moet u mogelijk gegevens importeren uit een opslagbestand dat met een vorige versie is gemaakt.

Lees hoe u gebruikersgegevens migreert met VBA


Pas UI-elementen zoals dialoogvensters aan.

Wacht-/laaddialoogvensters programmatisch verbergen

Section titled “Wacht-/laaddialoogvensters programmatisch verbergen”

U kunt het dialoogvenster “Loading workbook, please wait…” (Werkmap wordt geladen, even geduld…) met een VBA-aanroep verbergen in plaats van te wachten tot het automatisch sluit.

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

Communiceer met de onlinefuncties van XLS Padlock.

Test of er op de computer van de gebruiker een actieve internetverbinding beschikbaar is.

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

Haalt een hash op van het activeringstoken dat de webserver na een geslaagde online-activering heeft teruggegeven.

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

Controleren of de online-validatie is geslaagd

Section titled “Controleren of de online-validatie is geslaagd”

Haalt het resultaat van de laatste online-validatiepoging op.

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