Salta ai contenuti

Ricettario ed esempi dell'API VBA per XLS Padlock

Questo argomento offre una raccolta completa di snippet di codice VBA (“ricette”) per un controllo avanzato dell’applicazione protetta in fase di esecuzione. Utilizzando l’API VBA di XLS Padlock, è possibile recuperare informazioni di sistema, gestire il salvataggio e il caricamento, personalizzare l’interfaccia utente e interagire con le funzionalità online.

I due oggetti principali dell’API sono: Application.COMAddIns("GXLSForm.GXLSFormula").Object per la maggior parte delle informazioni in fase di esecuzione, e Application.COMAddIns("GXLS.GXLSPLock").Object per le operazioni legate al salvataggio.

Ogni ricetta riportata di seguito fornisce una funzione o una subroutine VBA pronta all’uso.


Informazioni sull’applicazione e sul sistema

Section titled “Informazioni sull’applicazione e sul sistema”

Queste ricette aiutano a recuperare informazioni sull’ambiente e sullo stato dell’applicazione.

Verificare se la cartella di lavoro è protetta

Section titled “Verificare se la cartella di lavoro è protetta”

Da utilizzare per confermare che il codice sia in esecuzione all’interno di un’applicazione protetta creata da 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

Ottenere il nome del file EXE dell’applicazione

Section titled “Ottenere il nome del file EXE dell’applicazione”

Recupera il nome del file .exe in esecuzione.

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

Ottenere la versione del file EXE e del prodotto

Section titled “Ottenere la versione del file EXE e del prodotto”

Recupera le stringhe di versione definite nella sezione “EXE Version Info” di 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

Utilizzo: ReadVersionInfo("ProductVersion") restituisce la Product Version, e ReadVersionInfo("FileVersion") restituisce la File Version.

Recupera il System ID univoco richiesto per le Activation Keys con blocco hardware (hardware-locked). Si tratta dell’identificatore che i clienti invieranno.

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

Ottenere i parametri della riga di comando

Section titled “Ottenere i parametri della riga di comando”

Recupera i parametri della riga di comando passati al file .exe dell’applicazione.

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

Utilizzo: ReadParamStr(1) restituisce il primo parametro, ReadParamStr(2) il secondo, e così via.


Salvataggio e caricamento delle cartelle di lavoro

Section titled “Salvataggio e caricamento delle cartelle di lavoro”

Gestire i file di salvataggio sicuri (.xlsc o .xlsce) tramite programmazione.

Ottenere il percorso del file di salvataggio corrente

Section titled “Ottenere il percorso del file di salvataggio corrente”

Recupera il percorso completo del file di salvataggio sicuro attualmente caricato.

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

Ottenere il percorso della cartella di salvataggio locale

Section titled “Ottenere il percorso della cartella di salvataggio locale”

Recupera il percorso della cartella locale in cui XLS Padlock memorizza le impostazioni dell’applicazione e i file di salvataggio sicuri.

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 può richiamare automaticamente la subroutine XLSPadlock_OnAfterSave dopo che un utente ha salvato il proprio lavoro. Ciò è utile per la registrazione su log, per mostrare un messaggio di conferma o per altre azioni successive al salvataggio.

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

Aprire un file di salvataggio esistente con VBA

Section titled “Aprire un file di salvataggio esistente con VBA”

Aprire un file di salvataggio sicuro tramite programmazione. Si noti che questo caricherà il file in una nuova istanza di 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

Suggerire un nome di file per la finestra di dialogo di salvataggio

Section titled “Suggerire un nome di file per la finestra di dialogo di salvataggio”

Imposta il nome di file predefinito che appare nella finestra di dialogo “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")

Salvare una copia sicura senza richiesta di conferma

Section titled “Salvare una copia sicura senza richiesta di conferma”

Salvare una copia sicura della cartella di lavoro direttamente in un percorso di file specificato, senza mostrare la finestra di dialogo “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

Migrare i dati utente da una versione precedente

Section titled “Migrare i dati utente da una versione precedente”

Se si pubblica una nuova versione della cartella di lavoro, potrebbe essere necessario importare i dati da un file di salvataggio creato con una versione precedente.

Scopri come migrare i dati utente con VBA


Personalizzare gli elementi dell’interfaccia, come le finestre di dialogo.

Nascondere tramite programmazione le finestre di dialogo di attesa e caricamento

Section titled “Nascondere tramite programmazione le finestre di dialogo di attesa e caricamento”

È possibile nascondere la finestra di dialogo “Loading workbook, please wait…” tramite una chiamata VBA, anziché attendere la sua chiusura automatica.

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

Interagire con le funzionalità online di XLS Padlock.

Verificare la presenza di una connessione a Internet

Section titled “Verificare la presenza di una connessione a Internet”

Verifica se sul computer dell’utente è disponibile una connessione a Internet attiva.

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

Recupera un hash del token di attivazione restituito dal server web dopo un’attivazione online riuscita.

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

Verificare se la validazione online è riuscita

Section titled “Verificare se la validazione online è riuscita”

Ottiene il risultato dell’ultimo tentativo di validazione online.

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