ScriptForge.Platform service /text/sbasic/shared/03/sf_platform.xhp
Platform service

ScriptForge.Platform service

The Platform service provides a collection of properties about the current execution environment and context, such as: The hardware platform (architecture, CPU count, machine type, etc) Operating system information (OS type, release, version, etc) The %PRODUCTNAME version The current user name
All properties of the Platform service are read-only.

Service invocation

Before using the Platform service the ScriptForge library needs to be loaded or imported: The examples below in Basic and Python instantiate the Platform service and access the Architecture property. GlobalScope.BasicLibraries.LoadLibrary("ScriptForge") Dim platform As Variant platform = CreateScriptService("Platform") MsgBox platform.Architecture from scriptforge import CreateScriptService svc = CreateScriptService("Platform") bas = CreateScriptService("Basic") bas.MsgBox(svc.Architecture) Platform service;Architecture Platform service;ComputerName Platform service;CPUCount Platform service;CurrentUser Platform service;Extensions Platform service;Fonts Platform service;FormatLocale Platform service;Locale Platform service;Machine Platform service;OfficeLocale Platform service;OfficeVersion Platform service;OSName Platform service;OSPlatform Platform service;OSRelease Platform service;OSVersion Platform service;Printers Platform service;Processor Platform service;PythonVersion Platform service;SystemLocale Platform service;UserData

Properties

Name Readonly Type Description Architecture Yes String The hardware bit architecture. Example: '32bit' or '64bit' ComputerName Yes String The computer's network name. CPUCount Yes Integer The number of central processing units. CurrentUser Yes String The name of the currently logged user. Extensions Yes String array Returns a zero-based array of strings containing the internal IDs of all installed extensions. FilterNames Yes String array Returns a zero-based unsorted array of strings containing the available document import and export filter names. Fonts Yes String array Returns a zero-based array of strings containing the names of all available fonts. FormatLocale Yes String Returns the locale used for numbers and dates as a string in the format "la-CO" (language-COUNTRY). Locale Yes String Returns the locale of the operating system as a string in the format "la-CO" (language-COUNTRY). This is equivalent to the SystemLocale property. Machine Yes String The machine type. Examples are: 'i386' or 'x86_64'. OfficeLocale Yes String Returns the locale of the user interface as a string in the format "la-CO" (language-COUNTRY). OfficeVersion Yes String The actual %PRODUCTNAME version expressed as
' %PRODUCTNAME w.x.y.z (The Document Foundation)'.
Example: 'LibreOffice 7.4.1.2 (The Document Foundation, Debian and Ubuntu)'
OSName Yes String The operating system type. Example: 'Darwin, Linux' or 'Windows'. OSPlatform Yes String A single string identifying the underlying platform with as much useful and human-readable information as possible. Example: 'Linux-5.8.0-44-generic-x86_64-with-glibc2.32' OSRelease Yes String The operating system's release. Example: '5.8.0-44-generic' OSVersion Yes String The operating system's build or version. Example: '#50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021' Printers Yes String
array
The list of available printers as a zero-based array. The default printer is put in the first position of the list (index = 0).
Processor Yes String The real processor name. Example: 'amdk6'. This property may return the same value as the Machine property. PythonVersion Yes String Returns the version of the Python interpreter being used as a string in the format "Python major.minor.patchlevel" (ex: "Python 3.9.7"). SystemLocale Yes String Returns the locale of the operating system as a string in the format "la-CO" (language-COUNTRY). This is equivalent to the Locale property. UserData Yes Dictionary Returns a Dictionary instance containing key-value pairs in relation with Tools - Options - User Data dialog.
The following examples in Basic and Python illustrate how to use the Fonts property to write the names of all available fonts to the current Calc sheet starting at cell "A1": Dim oDoc as Object Dim allFonts as Object Dim svcPlatform as Object Set oDoc = CreateScriptService("Calc") Set svcPlatform = CreateScriptService("Platform") allFonts = svcPlatform.Fonts oDoc.setArray("~.A1", allFonts) The example below demonstrates how to create a Calc table with all the values stored in the UserData property, which is a Dictionary service instance: Dim svcPlatform as Object, oUserData as Object, oDoc as Object Dim arrUserData As Object, currCell As String Set svcPlatform = CreateScriptService("Platform") oUserData = svcPlatform.UserData arrUserData = oUserData.ConvertToArray() Set oDoc = CreateScriptService("Calc", ThisComponent) oDoc.SetArray("~.A1", Array(Array("Key", "Value"))) oDoc.SetArray("~.A2", arrUserData) The examples above can be written in Python as follows: from scriptforge import CreateScriptService bas = CreateScriptService("Basic") doc = CreateScriptService("Calc", bas.ThisComponent) svc_platform = CreateScriptService("Platform") all_fonts = svc_platform.Fonts doc.setArray("~.A1", all_fonts) from scriptforge import CreateScriptService bas = CreateScriptService("Basic") doc = CreateScriptService("Calc", bas.ThisComponent) svc_platform = CreateScriptService("Platform") user_data = svc_platform.UserData arr_user_data = [[key, user_data[key]] for key in user_data] doc.SetArray("~.A1", (("Key", "Value"),)) doc.SetArray("~.A2", arr_user_data)
Platform information with INFO("system") Calc formula