Indhold
Indholdsfortegnelse 🔎︎

# Tjenesten ScriptForge.Session

Tjenesten Session samler forskellige generelle metoder:

- installations- eller udførelses-miljøet

- UNO-introspektion

- kald af eksterne skripts eller programmer

## Kald af tjeneste

         GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
         Dim session As Variant
         session = CreateScriptService("Session")

Denne tjeneste er fuldt understøttet i sprogene Basic og Python. Alle eksempler udtrykkes med programmeringssproget Basic og kan let konverteres til Python.

## Konstanter

Herunder er der en liste over konstanter til at lette udpegningen af biblioteket, der indeholder et Basic- eller Python-skript, der skal kaldes.
Brug som som session.CONSTANT.

CONSTANT | Værdi | Hvor findes biblioteket? | Anvendelig
SCRIPTISEMBEDDED | "document" | i dokumentet | Basic + Python
SCRIPTISAPPLICATION | "application" | i ethvert delt bibliotek | Basic
SCRIPTISPERSONAL | "user" | i Mine makroer | Python
SCRIPTISPERSOXT | "user:uno_packages" | i en udvidelse, der installeret til den aktuelle bruger | Python
SCRIPTISSHARED | "share" | i LibreOffice-makroer | Python
SCRIPTISSHAROXT | "share:uno_packages" | i en udvidelse, der er installeret til alle brugere | Python
SCRIPTISOXT | "uno_packages" | i en udvidelse, selv om installationsparametrene er ukendte | Python

Tjenesten List of Methods in the Session (Liste over metoder i sessionen)
ExecuteBasicScript ExecuteCalcFunction ExecutePythonScript HasUnoMethod | HasUnoProperty OpenURLInBrowser RunApplication SendMail | UnoMethods UnoProperties UnoObjectType WebService

Tjenesten Sessions (Sessions) metoder har denne adfærd:
Argumenter videregives efter værdi. Opdateringer, udført af den kaldte funktion, sendes ikke tilbage til det kaldende script.
En enkelt værdi eller et matrix af værdier returneres til det kaldende script.

## ExecuteBasicScript

Udfør Basic-skriptet givet dets navn og placering og hent dets resultat, hvis der er noget.

Hvis scriptet ikke bliver fundet, eller hvis det intet returnerer, er den returnerede værdi Empty (tom).

### Syntaks:

          session.ExecuteBasicScript([Scope As String], Script As String[, arg0 As Variant, ...]) As Variant

### Parametre:

Scope (Rækkevidde): "document" (dokument) eller "application" (program) eller en af de anvendelige session.CONSTANTS (session.KONSTANTER).

Script: "bibliotek.modul.metode" som en streng med både Stort og småt.
Biblioteket hentes ind i hukommelsen, om nødvendigt.
Modulet må ikke være et klassemodul.
Metoden kan være en Sub (delfunktion) eller en Function (funktion).

arg0, ...: Argumenter, der skal gives til det kaldte script.

### Eksempel:

          session.ExecuteBasicScript(, "XrayTool._Main.Xray", CreateUnoService("com.sun.star.util.TextSearch"))
          ' Xray returnerer ingen værdi

## ExecuteCalcFunction

Udfør en Calc-funktion med dens engelske navn og baseret på de givne argumenter.
Hvis argumenterne er matrixer, udføres funktionen som en array formula (matrixformel).

### Syntaks:

          session.ExecuteCalcFunction(CalcFunction As String, arg0, ...) As Variant

### Parametre:

CalcFunction (Calc-funktion): Det engelske navn på funktionen, der skal udføres.

arg0, ...: De argumenter, der skal gives til Calc-funktionen. Hvert argument skal være enten en streng, en numerisk værdi eller en matrix af matrixer, der kombinerer disse typer.

### Eksempel:

          session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) ' 4
          session.ExecuteCalcFunction("ABS", Array(Array(-1,2,3),Array(4,-5,6),Array(7,8,-9)))(2)(2) ' 9
          session.ExecuteCalcFunction("LN", -3)
          ' Genererer en fejl.

## ExecutePythonScript

Udfør Python-scriptet givet dets placering og navn, hent dets resultat, om noget. Resultatet kan være en enkelt værdi eller et matrix af værdier.

Hvis scriptet ikke bliver fundet, eller hvis det intet returnerer, er den returnerede værdi Empty (tom).

LibreOffice Application Programming Interface (API)s rammer for scripts understøtter mellemsproglig udførelse af scripts mellem Python og Basic, eller for den sags skyld med andre understøttede programmeringssprog. Argumenter kan videregives frem og tilbage på tværs af kald, forudsat at de repræsenterer primitive datatyper, som begge sprog genkender, og under den antagelse af scripting-rammerne konverterer dem på passende måde.

### Syntaks:

          session.ExecutePythonScript([Scope] As String, Script As String[, arg0 As Variant, ...]) As Variant

### Parametre:

Scope (Rækkevidde): En af de anvendelige session.CONSTANTS (session.KONSTANTER). Standard = session.SCRIPTISSHARED (sesseion.SCRIPT ER DELT).

Script: Enten "library/module.py$method" eller "module.py$method" eller "myExtension.oxt|myScript|module.py$method" som en streng med både Stort og småt.

- library (bibliotek): Mappestien til Python-modulet.

- myScript (mit script): Den mappe, der indeholder Python-modulet.

- module.py: Python-modulet.

- metode: Python-funktionen.

arg0, ...: Argumenterne, der skal gives til til det kaldte script.

### Eksempel:

          session.ExecutePythonScript(session.SCRIPTISSHARED, "Capitalise.py$getNewString", "Abc") ' "abc"

## HasUnoMethod

Returnerer True, hvis et UNO-objekt indeholder den givne metode. Returnerer False, når metoden ikke bliver fundet eller når et argument er ugyldigt.

### Syntaks:

          session.HasUnoMethod(UnoObject As Object, MethodName As String) As Boolean

### Parametre:

UnoObject: Objektet, der skal inspiceres.

MethodName (Metodenavn): metoden som en streng med både Stort og småt

### Eksempel:

          Dim a As Variant
          a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
          MsgBox session.HasUnoMethod(a, "callFunction")

## HasUnoProperty

Returnerer True (sand), hvis et UNO-objekt har en given egenskab. Returnerer False (falsk), når egenskaben ikke er fundet eller når et argument er ugyldigt.

### Syntaks:

          session.HasUnoProperty(UnoObject As Object, PropertyName As String) As Boolean

### Parametre:

UnoObject: Objektet, der skal inspiceres.

PropertyName (Egenskabsnavn): egenskaben som en streng med både Stort og småt

### Eksempel:

          Dim svc As Variant
          svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
          MsgBox session.HasUnoProperty(svc, "Wildcards")

## OpenURLInBrowser

Åbn en Uniform Resource Locator (URL) i standardbrowseren.

### Syntaks:

          session.OpenURLInBrowser(URL As String)

### Parametre:

URL: Den URL, der skal åbnes.

### Eksempel:

          session.OpenURLInBrowser("https://docs.python.org/3/library/webbrowser.html")

## RunApplication

Udfører en vilkårlig systemkommando og returnerer True (sand), hvis den blev rigtigt indledt.

### Syntaks:

          session.RunApplication(Command As String, Parameters As String) As Boolean

### Parametre:

Command: Den kommando, der skal udføres. Det kan være en fil, der kan køres, eller et dokument, som registreres med et program, så systemet ved, hvilket program, der skal åbnes til dokumentet. Kommandoen skal udtrykkes i den aktuelle SF_FileSystem.FileNaming (SF_Filsystem.Filnavngivelse)-notation.

Parameters (Parametre): En liste af parametre adskilt af mellemrum som en enkelt streng. Metoden validerer ikke de givne parametre, men videregiver dem bare til den angivne kommando.

### Eksempel:

          session.RunApplication("Notepad.exe")
          session.RunApplication("C:\myFolder\myDocument.odt")
          session.RunApplication("kate", "/home/me/install.txt") ' GNU/Linux

## SendMail

Send en besked – med valgfrie vedhæftninger – til modtagere fra brugerens mailklient. Beskeden kan være kan redigeret af brugeren før afsendelse, eller alternativt blive sendt øjeblikkeligt.

### Syntaks:

          session.SendMail(Recipient As String, [Cc As String], [Bcc As String], [Subject As String], [Body As String], [FileNames As String], [EditMessage As Boolean])

### Parametre:

Modtager: En e-mailadresse ("Til"-modtageren).

Cc: En komma-opdelt liste over e-mailadresser (modtagere af gennemslagskopi: "carbon copy").

Bcc: En komma-opdelt liste af e-mailaddresses (modtagere af skjulte gennemslagskopier: "blind carbon copy").

Subject (Emne): beskedens overskrift.

Body (Brødtekst): Beskedens indhold som udformateret tekst.

FileNames (Filnavne): en komma-opdelt liste overr filnavne. Hvert navn skal respektere notationen i SF_FileSystem.FileNaming (SF_Filsystem.Filnavngivelse).

EditMessage (rediger besked): Når True (sand) (standard), redigeres beskeden før afsendelse.

### Eksempel:

          session.SendMail("a@example.com" _
              , Cc := "b@other.fr, c@other.be" _
              , FileNames := "C:\myFile1.txt, C:\myFile2.txt" _
              )

## UnoMethods

Returnerer en liste over metoder, der kan kaldes fra et UNO-objekt. Listen er en nul-baseret matrix af strenge og kan være tom.

### Syntaks:

          session.UnoMethods(UnoObject As Object) As Variant

### Parametre:

UnoObject: Objektet, der skal inspiceres.

### Eksempel:

          Dim a As Variant
          a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
          MsgBox SF_Array.Contains(session.UnoMethods(a), "callFunction")

## UnoProperties

Returnerer en liste over et UNO-objekts egenskaber. Listen er en nul-baseret matrix af strenge og kan være tom.

### Syntaks:

          session.UnoProperties(UnoObject As Object) As Variant

### Parametre:

UnoObject: Objektet, der skal inspiceres.

### Eksempel:

          Dim svc As Variant
          svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
          MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards")

## UnoObjectType

Identificer et UNO-objekts type som en streng.

### Syntaks:

          session.UnoObjectType(UnoObject As Object) As String

### Parametre:

UnoObject: Objektet, der skal identificeres.

### Eksempel:

          Dim svc As Variant, txt As String
          svc = 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

Hent noget webindhold fra en URI.

### Syntaks:

          session.WebService(URI As String) As String

### Parametre:

URI: En webtjenestes URI-tekst.

### Eksempel:

          session.WebService("wiki.documentfoundation.org/api.php?" _
              & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")

Alle ScriptForge Basic-rutiner eller identifikatorer, som indledes med et understregningstegn "_" er reserveret til internt brug. De er ikke beregnet til brug i Basic-makroer.

Relaterede emner

Funktionen Matrix

Kald af Calc-funktioner

Kalde Python-scripts fra Basic

Tjenesten ScriptForge.FileSystem