ScriptForge.Session service/text/sbasic/shared/03/sf_session.xhpSession service
ScriptForge.Session service
The Session service gathers various general-purpose methods about:the installation or execution environmentUNO introspection** for 7.x ** clipboard managementthe invocation of external scripts or programs
Service invocation
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")Dim session As Variantsession = CreateScriptService("Session")
Constants
Below is a list of constants available to ease the designation of the library containing a Basic or Python script to invoke.
Use them as session.CONSTANT.
CONSTANTValueWhere to find the library?ApplicableSCRIPTISEMBEDDED"document"in the documentBasic + PythonSCRIPTISAPPLICATION"application"in any shared libraryBasicSCRIPTISPERSONAL"user"in My MacrosPythonSCRIPTISPERSOXT"user:uno_packages"in an extension installed for the current userPythonSCRIPTISSHARED"share"in %PRODUCTNAME macrosPythonSCRIPTISSHAROXT"share:uno_packages"in an extension installed for all usersPythonSCRIPTISOXT"uno_packages"in an extension but the installation parameters are unknownPython
List of Methods in the Session Service
ExecuteBasicScript
ExecuteCalcFunction
ExecutePythonScript
HasUnoMethod
HasUnoProperty
OpenURLInBrowser
RunApplication
SendMail
UnoMethods
UnoProperties
UnoObjectType
WebService
Session service methods behave as follows:
Arguments are passed by value. Updates performed by the called function are not sent back to the calling script.
A single value or an array of values is returned to the calling script.
ExecuteBasicScript -------------------------------------------------------------------------------------------------------------------------- Session service;ExecuteBasicScript
ExecuteBasicScript
Execute the Basic script given its name and location and fetch its result if any.If the script is not found, or if it returns nothing, the returned value is Empty.session.ExecuteBasicScript([Scope As String], Script As String[, arg0 As Variant, ...]) As VariantScope: "document" or "application" or one of the applicable session.CONSTANTS.Script: "library.module.method" as a case-sensitive string.
The library is loaded in memory if necessary.
The module must not be a class module.
The method may be a Sub or a Function.arg0, ...: The arguments to provide to the called script.session.ExecuteBasicScript(, "XrayTool._Main.Xray", CreateUnoService("com.sun.star.util.TextSearch"))' Xray returns no value ExecuteCalcFunction -------------------------------------------------------------------------------------------------------------------------- Session service;ExecuteCalcFunction
ExecuteCalcFunction
Execute a Calc function using its English name and based on the given arguments.
If the arguments are arrays, the function is executed as an array formula.session.ExecuteCalcFunction(CalcFunction As String, arg0, ...) As VariantCalcFunction: The English name of the function to execute.arg0, ...: The arguments to provide to the called Calc function. Each argument must be either a string, a numeric value or an array of arrays combining those types.session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) ' 4session.ExecuteCalcFunction("ABS", Array(Array(-1,2,3),Array(4,-5,6),Array(7,8,-9)))(2)(2) ' 9session.ExecuteCalcFunction("LN", -3)' Generates an error. ExecutePythonScript -------------------------------------------------------------------------------------------------------------------------- Session service;ExecutePythonScript
ExecutePythonScript
Execute the Python script given its location and name, fetch its result if any. Result can be a single value or an array of values.If the script is not found, or if it returns nothing, the returned value is Empty.session.ExecutePythonScript([Scope] As String, Script As String[, arg0 As Variant, ...]) As VariantScope: One of the applicable session.CONSTANTS. Default = session.SCRIPTISSHARED.Script: Either "library/module.py$method" or "module.py$method" or "myExtension.oxt|myScript|module.py$method" as a case-sensitive string.library: The folder path to the Python module.myScript: The folder containing the Python module.module.py: The Python module.method: The Python function.arg0, ...: The arguments to provide to the called script.session.ExecutePythonScript(session.SCRIPTISSHARED, "Capitalise.py$getNewString", "Abc") ' "abc" HasUnoMethod -------------------------------------------------------------------------------------------------------------------------- Session service;HasUnoMethod
HasUnoMethod
Returns True if an UNO object contains the given method. Returns False when the method is not found or when an argument is invalid.session.HasUnoMethod(UnoObject As Object, MethodName As String) As BooleanUnoObject: The object to inspect.MethodName: the method as a case-sensitive stringDim a As Varianta = CreateUnoService("com.sun.star.sheet.FunctionAccess")MsgBox session.HasUnoMethod(a, "callFunction") HasUnoProperty -------------------------------------------------------------------------------------------------------------------------- Session service;HasUnoProperty
HasUnoProperty
Returns True if a UNO object has the given property. Returns False when the property is not found or when an argument is invalid.session.HasUnoProperty(UnoObject As Object, PropertyName As String) As BooleanUnoObject: The object to inspect.PropertyName: the property as a case-sensitive stringDim svc As Variantsvc = CreateUnoService("com.sun.star.sheet.FunctionAccess")MsgBox session.HasUnoProperty(svc, "Wildcards") OpenURLInBrowser -------------------------------------------------------------------------------------------------------------------------- Session service;OpenURLInBrowser
OpenURLInBrowser
Open a Uniform Resource Locator (URL) in the default browser.session.OpenURLInBrowser(URL As String)URL: The URL to open.session.OpenURLInBrowser("https://docs.python.org/3/library/webbrowser.html") RunApplication -------------------------------------------------------------------------------------------------------------------------- Session service;RunApplication
RunApplication
Executes an arbitrary system command and returns True if it was launched successfully.session.RunApplication(Command As String, Parameters As String) As BooleanCommand: The command to execute. This may be an executable file or a document which is registered with an application so that the system knows what application to launch for that document. The command must be expressed in the current SF_FileSystem.FileNaming notation.Parameters: A list of space separated parameters as a single string. The method does not validate the given parameters, but only passes them to the specified command.session.RunApplication("Notepad.exe")session.RunApplication("C:\myFolder\myDocument.odt")session.RunApplication("kate", "/home/me/install.txt") ' GNU/Linux SendMail -------------------------------------------------------------------------------------------------------------------------- Session service;SendMail
SendMail
Send a message - with optional attachments - to recipients from the user's mail client. The message may be edited by the user before sending or, alternatively, be sent immediately.session.SendMail(Recipient As String, [Cc As String], [Bcc As String], [Subject As String], [Body As String], [FileNames As String], [EditMessage As Boolean])Recipient: An email address (the "To" recipient).Cc: A comma-separated list of email addresses (the "carbon copy" recipients).Bcc: A comma-separated list of email addresses (the "blind carbon copy" recipients).Subject: the header of the message.Body: The content of the message as an unformatted text.FileNames: a comma-separated list of file names. Each file name must respect the SF_FileSystem.FileNaming notation.EditMessage: When True (default), the message is edited before being sent.session.SendMail("a@example.com" _ , Cc := "b@other.fr, c@other.be" _ , FileNames := "C:\myFile1.txt, C:\myFile2.txt" _ ) UnoMethods -------------------------------------------------------------------------------------------------------------------------- Session service;UnoMethods
UnoMethods
Returns a list of the methods callable from an UNO object. The list is a zero-based array of strings and may be empty.session.UnoMethods(UnoObject As Object) As VariantUnoObject: The object to inspect.Dim a As Varianta = CreateUnoService("com.sun.star.sheet.FunctionAccess")MsgBox SF_Array.Contains(session.UnoMethods(a), "callFunction") UnoProperties -------------------------------------------------------------------------------------------------------------------------- Session service;UnoProperties
UnoProperties
Returns a list of the properties of an UNO object. The list is a zero-based array of strings and may be empty.session.UnoProperties(UnoObject As Object) As VariantUnoObject: The object to inspect.Dim svc As Variantsvc = CreateUnoService("com.sun.star.sheet.FunctionAccess")MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") UnoObjectType -------------------------------------------------------------------------------------------------------------------------- Session service;UnoObjectType
UnoObjectType
Identify the type of a UNO object as a string.session.UnoObjectType(UnoObject As Object) As StringUnoObject: The object to identify.Dim svc As Variant, txt As Stringsvc = CreateUnoService("com.sun.star.system.SystemShellExecute")txt = session.UnoObjectType(svc) ' "com.sun.star.comp.system.SystemShellExecute"svc = CreateUnoStruct("com.sun.star.beans.Property")txt = session.UnoObjectType(svc) ' "com.sun.star.beans.Property" WebService -------------------------------------------------------------------------------------------------------------------------- Session service;WebService
WebService
Get some web content from a URI.session.WebService(URI As String) As StringURI: URI text of the web service.session.WebService("wiki.documentfoundation.org/api.php?" _ & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")