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 IfEnd FunctionOttenere 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 FunctionErr: GetEXEFilename = ""End FunctionOttenere 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 FunctionErr: ReadVersionInfo = ""End FunctionUtilizzo: ReadVersionInfo("ProductVersion") restituisce la Product Version, e ReadVersionInfo("FileVersion") restituisce la File Version.
Ottenere il System ID dell’utente
Section titled “Ottenere il System ID dell’utente”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 FunctionErr: ReadSystemID = ""End FunctionOttenere 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 FunctionErr: ReadParamStr = ""End FunctionUtilizzo: 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 FunctionErr: GetSecureWorkbookFilename = ""End FunctionOttenere 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 FunctionErr: GetStoragePath = ""End FunctionEseguire codice VBA dopo il salvataggio
Section titled “Eseguire codice VBA dopo il salvataggio”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: " & SaveFilenameEnd SubAprire 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 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 SubSuggerire 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 IfEnd 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 FunctionErr: SaveSecureWorkbookToFile = FalseEnd Function
' Example: Save the workbook directly' If SaveSecureWorkbookToFile("D:\My Documents\my save.xlsc") Then' MsgBox "Workbook saved successfully."' End IfMigrare 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
Interfaccia utente
Section titled “Interfaccia utente”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 IfEnd SubAttivazione e validazione online
Section titled “Attivazione e validazione online”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 FunctionErr: IsInternetAvailable = FalseEnd FunctionOttenere il token di attivazione online
Section titled “Ottenere il token di attivazione online”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 FunctionErr: GetValidationToken = ""End FunctionVerificare 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 FunctionErr: IsValidationOK = FalseEnd Function