Identificatie van het besturingssysteem

Het identificeren van het besturingssysteem kan worden uitgevoerd met Python of Basictaal.


ComputerName property is solely available for Windows. Basic calls to Python macros help overcome LibreOffice Basic limitations.

Een Python-class gebruiken:

        import os, platform
        class Platform():
            def ComputerName(self): return platform.node()
            def DirSeparator(self): return os.sep
            def isLinux(self): return (self.OSName=='Linux')
            def isMacOSX(self): return (self.OSName=='Darwin')
            def isWindows(self): return (self.OSName=='Windows')
            def OSName(self): return platform.system()
            def PathDelimiter(self): return os.pathsep

Using a Basic classmodule:


LibreOffice Basic lacks MacOS X native recognition. Platform identification is possible using LibreOffice Application Programming Interface (API).

        Option Compatible
        Option ClassModule
        Option Explicit
        Public Property Get ComputerName As String
            If isWindows Then ComputerName = Environ("ComputerName")
        End Property ' Platform.ComputerName
        Public Property Get DirSeparator As String
            DirSeparator = GetPathSeparator()
        End Property ' Platform.DirSeparator
        Public Property Get IsLinux As Boolean
            isLinux = ( GetGUIType()=4 ) ' Applies to macOS as well 
        End Property ' Platform.isLinux
        Public Property Get IsMacOSX As Boolean
            isMacOSX = ( OSName="MAC" )
        End Property ' Platform.isMacOSX
        Public Property Get IsWindows As Boolean
            isWindows = ( GetGUIType()=1 )
        End Property ' Platform.isWindows
        Public Property Get OSName As String
            ' Return platform name as "MAC", "UNIX", "WIN"
            ' Inferred from "Tools.UCB.ShowHelperDialog" function
            With GlobalScope.Basiclibraries
                If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
            End With
            Dim keyNode As Object '
            keyNode = Tools.Misc.GetRegistryKeyContent("org.openoffice.Office.Common/Help")
            OSName = keyNode.GetByName("System")
        End Property ' Platform.OSName
        Public Property Get PathDelimiter As String
            Select Case OSName
                Case "MAC", "UNIX" : PathDelimiter = ":"
                Case "WIN" : PathDelimiter = ";"
             End Select
        End Property ' Platform.PathDelimiter


Met Python

>>> from <the_module> import Platform

>>> print(Platform().isMacOSX) # object property


>>> input(Platform().OSName) # object property


Vanuit het menu Extra – Macro's - Macro uitvoeren....

        from <the_module> import Platform
        import screen_io as ui
        p = Platform()
        ui.MsgBox(''.join(['isMacOS: ',str(p.isMacOSX)]),0,p.OSName)

Met LibreOffice Basic

        Sub Platform_example()
            Dim p As New Platform ' instance of Platform class
            MsgBox p.isLinux ' object property
            Print p.isWindows, p.OSName ' object properties
        End Sub ' Platform_example

Help ons, alstublieft!