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.
Toepassings- en systeeminformatie
Section titled “Toepassings- en systeeminformatie”Deze recepten helpen u informatie op te halen over de omgeving en de status van de toepassing.
Controleren of de werkmap is beschermd
Section titled “Controleren of de werkmap is beschermd”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 IfEnd FunctionDe 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 FunctionErr: GetEXEFilename = ""End FunctionEXE-bestands- en productversie ophalen
Section titled “EXE-bestands- en productversie ophalen”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 FunctionErr: ReadVersionInfo = ""End FunctionGebruik: ReadVersionInfo("ProductVersion") geeft de Product Version terug en ReadVersionInfo("FileVersion") geeft de File Version terug.
De System ID van de gebruiker ophalen
Section titled “De System ID van de gebruiker ophalen”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 FunctionErr: ReadSystemID = ""End FunctionOpdrachtregelparameters ophalen
Section titled “Opdrachtregelparameters ophalen”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 FunctionErr: ReadParamStr = ""End FunctionGebruik: ReadParamStr(1) geeft de eerste parameter terug, ReadParamStr(2) de tweede, enzovoort.
Werkmappen opslaan en laden
Section titled “Werkmappen opslaan en laden”Beheer beveiligde opslagbestanden (.xlsc of .xlsce) programmatisch.
Pad van het huidige opslagbestand ophalen
Section titled “Pad van het huidige opslagbestand ophalen”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 FunctionErr: GetSecureWorkbookFilename = ""End FunctionPad van de lokale opslagmap ophalen
Section titled “Pad van de lokale opslagmap ophalen”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 FunctionErr: GetStoragePath = ""End FunctionVBA-code uitvoeren na het opslaan
Section titled “VBA-code uitvoeren na het opslaan”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: " & SaveFilenameEnd SubEen bestaand opslagbestand openen met VBA
Section titled “Een bestaand opslagbestand openen met VBA”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 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 SubEen 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 IfEnd Sub
' Example: Set the default name to "my save.xlsc"' Call SetSecureWorkbookFilename("D:\My Documents\my save.xlsc")Een beveiligde kopie opslaan zonder vraag
Section titled “Een beveiligde kopie opslaan zonder vraag”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 FunctionErr: SaveSecureWorkbookToFile = FalseEnd Function
' Example: Save the workbook directly' If SaveSecureWorkbookToFile("D:\My Documents\my save.xlsc") Then' MsgBox "Workbook saved successfully."' End IfGebruikersgegevens 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
Gebruikersinterface
Section titled “Gebruikersinterface”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 IfEnd SubOnline activering en validatie
Section titled “Online activering en validatie”Communiceer met de onlinefuncties van XLS Padlock.
Controleren op een internetverbinding
Section titled “Controleren op een internetverbinding”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 FunctionErr: IsInternetAvailable = FalseEnd FunctionHet online-activeringstoken ophalen
Section titled “Het online-activeringstoken ophalen”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 FunctionErr: GetValidationToken = ""End FunctionControleren 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 FunctionErr: IsValidationOK = FalseEnd Function