LibreOffice 24.8 žinynas
Darbą su „LibreOffice“ vartotojo profiliu ir bendrinamų modulių sistemos failų keliais galima atlikti naudojant „Python“ arba „Basic“ kalbas. Iš šios informacijos galima nustatyti „BeanShell“, „Java“, „JavaScript“ ir „Python“ skriptų vietas.
Naudojant „Python“ apvakalą
>>> from <the_module> import Session
>>> print(Session.SharedPythonScripts()) # static method
>>> print(Session().UserName) # objekto savybė
>>> input(Session().UserProfile) # objekto savybė
from <the_module> import Session
def demo_session():
import screen_io as ui
ui.MsgBox(Session.Share(),title='Installation Share') # statinis metodas
ui.Print(Session.SharedPythonScripts()) # statinis metodas
s = Session() # pavyzdžio sukūrimas
ui.MsgBox(s.UserName,title='Hello') # objekto savybė
ui.Print(s.UserPythonScripts) # objekto savybė
g_exportedScripts = (demo_session,) # viešos makrokomandos
Sub Session_example()
Dim s As New Session ' instance of Session class
Print "Shared scripts location:", s.SharedScripts
MsgBox s.UserName,,"Sveikas"
Print s.UserScripts, Chr(13), s.UserPythonScripts
End Sub ' Session_example
' Įėjimo taške tvarkomos paslaugos
' Jei neveikia nė vienas biuras, jis įsteigiamas
Set sm = WScript.CreateObject("com.sun.star.ServiceManager")
' „PathSubstitution“ tarnyba pateikia informaciją, iš kurios galima spręsti
' <UserProfile|Share>/Scripts/python vieta
Set obj = sm.createInstance("com.sun.star.util.PathSubstitution")
MsgBox CreateObject("WScript.Network").UserName,, "Hello"
user = obj.getSubstituteVariableValue("$(user)")
MsgBox user & "/Scripts",, "User scripts location"
libO = Replace(obj.getSubstituteVariableValue("$(inst)"), "program/..", "Share")
MsgBox libO & "/Scripts",, "Shared scripts location"
import getpass, os, os.path, uno
class Session():
@staticmethod
def substitute(var_name):
ctx = uno.getComponentContext()
ps = ctx.getServiceManager().createInstanceWithContext(
'com.sun.star.util.PathSubstitution', ctx)
return ps.getSubstituteVariableValue(var_name)
@staticmethod
def Share():
inst = uno.fileUrlToSystemPath(Session.substitute("$(prog)"))
return os.path.normpath(inst.replace('program', "Share"))
@staticmethod
def SharedScripts():
return ''.join([Session.Share(), os.sep, "Scripts"])
@staticmethod
def SharedPythonScripts():
return ''.join([Session.SharedScripts(), os.sep, 'python'])
@property # alternative to '$(username)' kintamasis
def UserName(self): return getpass.getuser()
@property
def UserProfile(self):
return uno.fileUrlToSystemPath(Session.substitute("$(user)"))
@property
def UserScripts(self):
return ''.join([self.UserProfile, os.sep, 'Scripts'])
@property
def UserPythonScripts(self):
return ''.join([self.UserScripts, os.sep, "python"])
Skirtingai nuo „Basic“, kelio pavadinimo normalizavimas atliekamas naudojant „Python“ sesijos klasę.
Option Explicit
Option Compatible
Option ClassModule
Private _ps As Object ' privatus narys
Private Sub Class_Initialize()
GlobalScope.BasicLibraries.LoadLibrary("Tools")
Set _ps = CreateUnoService("com.sun.star.util.PathSubstitution")
End Sub ' Konstruktorius
Private Sub Class_Terminate()
_ps = Nothing
End Sub ' Destruktorius
Public Property Get SharedScripts() As String
Dim inst As String, shr As String
inst = ConvertFromURL(_ps.getSubstituteVariableValue("$(prog)"))
shr = Tools.Strings.ReplaceString(inst,"Share","program")
SharedScripts = shr & GetPathSeparator() &"Scripts"
End Property ' Session.sharedScripts
Public Property Get SharedPythonScripts() As String
sharedPythonScripts = sharedScripts() & GetPathSeparator() &"python"
End Property ' Session.sharedPythonScripts
Viešoji savybė: Get UserName() As String ' Vartotojo abonemento vardas
userName = _ps.getSubstituteVariableValue("$(username)")
End Property ' Session.userName
Viešoji savybė: Get UserProfile() As String ' Vartotojo profilio sisteminis kelias
userProfile = ConvertFromURL(_ps.getSubstituteVariableValue("$(user)"))
End Property ' Session.userProfile
Viešoji savybė: Get UserProfile() As String ' Vartotojo skripto sisteminis kelias
userScripts = userProfile() & GetPathSeparator() &"Scripts"
End Property ' Session.userScripts
Viešoji savybė: Get UserProfile() As String ' Vartotojo „Python“ skriptų sisteminis kelias
userPythonScripts = userScripts() & GetPathSeparator() &"python"
End Property ' Session.userPythonScripts