Ir al contenido

Recetario y recetas de la API VBA para XLS Padlock

Este tema ofrece una colección completa de fragmentos de código VBA (“recetas”) para un control avanzado de su aplicación protegida en tiempo de ejecución. Con la API VBA de XLS Padlock, puede recuperar información del sistema, gestionar el guardado y la carga, personalizar la interfaz de usuario e interactuar con funciones en línea.

Los dos objetos principales de la API son:, Application.COMAddIns("GXLSForm.GXLSFormula").Object para la mayor parte de la información en tiempo de ejecución., Application.COMAddIns("GXLS.GXLSPLock").Object para las operaciones relacionadas con el guardado.

Cada receta a continuación proporciona una función o subrutina VBA lista para usar.


Información de la aplicación y del sistema

Section titled “Información de la aplicación y del sistema”

Estas recetas le ayudan a recuperar información sobre el entorno y el estado de la aplicación.

Utilice esto para confirmar que su código se está ejecutando dentro de una aplicación protegida creada por 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

Obtener el nombre del archivo EXE de la aplicación

Section titled “Obtener el nombre del archivo EXE de la aplicación”

Recupera el nombre del archivo .exe en ejecución.

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

Obtener la versión del archivo EXE y del producto

Section titled “Obtener la versión del archivo EXE y del producto”

Recupera las cadenas de versión que definió en la sección “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 Function
Err:
ReadVersionInfo = ""
End Function

Uso:, ReadVersionInfo("ProductVersion") devuelve la versión del producto (Product Version)., ReadVersionInfo("FileVersion") devuelve la versión del archivo (File Version).

Recupera el ID del sistema único que se requiere para las claves de activación bloqueadas por hardware. Este es el ID que le enviarán sus clientes.

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

Obtener parámetros de la línea de comandos

Section titled “Obtener parámetros de la línea de comandos”

Recupera los parámetros de la línea de comandos pasados al archivo .exe de su aplicación.

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

Uso: ReadParamStr(1) devuelve el primer parámetro, ReadParamStr(2) el segundo, y así sucesivamente.


Gestione los archivos de guardado seguros (.xlsc o .xlsce) mediante programación.

Obtener la ruta del archivo de guardado actual

Section titled “Obtener la ruta del archivo de guardado actual”

Recupera la ruta completa al archivo de guardado seguro que está cargado actualmente.

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

Obtener la ruta de la carpeta de guardado local

Section titled “Obtener la ruta de la carpeta de guardado local”

Recupera la ruta a la carpeta local donde XLS Padlock almacena la configuración de su aplicación y los archivos de guardado seguros.

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 puede llamar automáticamente a la subrutina XLSPadlock_OnAfterSave después de que un usuario guarde su trabajo. Esto resulta útil para el registro, para mostrar un mensaje de confirmación o para otras acciones posteriores al guardado.

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

Abrir un archivo de guardado existente con VBA

Section titled “Abrir un archivo de guardado existente con VBA”

Abra un archivo de guardado seguro mediante programación. Tenga en cuenta que esto cargará el archivo en una nueva instancia de 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

Sugerir un nombre de archivo para el cuadro de diálogo de guardado

Section titled “Sugerir un nombre de archivo para el cuadro de diálogo de guardado”

Establezca el nombre de archivo predeterminado que aparece en el cuadro de diálogo “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")

Guardar una copia segura sin solicitar confirmación

Section titled “Guardar una copia segura sin solicitar confirmación”

Guarde una copia segura del libro directamente en una ruta de archivo especificada sin mostrar el cuadro de diálogo “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

Migrar datos de usuario de una versión anterior

Section titled “Migrar datos de usuario de una versión anterior”

Si publica una nueva versión de su libro, es posible que necesite importar datos de un archivo de guardado creado con una versión anterior.

Aprenda a migrar datos de usuario con VBA


Personalice elementos de la interfaz, como los cuadros de diálogo.

Ocultar mediante programación los cuadros de diálogo de espera/carga

Section titled “Ocultar mediante programación los cuadros de diálogo de espera/carga”

Puede ocultar el cuadro de diálogo “Loading workbook, please wait…” con una llamada VBA en lugar de esperar a que se cierre automáticamente.

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

Interactúe con las funciones en línea de XLS Padlock.

Comprueba si hay una conexión a Internet activa disponible en el equipo del usuario.

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 de activación devuelto por el servidor web tras una activación en línea correcta.

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

Comprobar si la validación en línea se ha realizado correctamente

Section titled “Comprobar si la validación en línea se ha realizado correctamente”

Obtiene el resultado del último intento de validación en línea.

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