Turinys

# Operacinės sistemos identifikavimas

Operacinę sistemą galima nustatyti naudojant „Python“ arba „Basic“ kalbą.

Savybė „ComputerName“ prieinama tik „Windows“ operacinei sistemai. „Basic“ kreipiniai į „Python“ makrokomandas padeda įveikti „LibreOffice Basic“ ribojimus.

## Naudojant „Python“ klasę:

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

## Naudojant „Basic“ klasės modulį:

„LibreOffice Basic“ trūksta „MacOS X“ savęs atpažinimo. Platformos identifikavimas galimas naudojant „LibreOffice“ taikomųjų programų sąsają (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
                ' Grąžinti platformos vardą kaip "MAC", "UNIX", "WIN"
                ' Gauta iš "Tools.UCB.ShowHelperDialog" funkcijos
                With GlobalScope.Basiclibraries
                    If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
                End With
                Dim keyNode As Object ' com.sun.star.configuration.ConfigurationAccess
                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

## Pavyzdžiai:

Naudojant „Python"

>>> from < the_module > import Platform

>>> print(Platforma().isMacOSX) # objekto savybė

True

>>> input(Platforma().OSName) # objekto savybė

Darwin

Iš Įrankiai → Makrokomandos → Vykdyti makrokomandą… meniu.

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

Naudojant „LibreOffice Basic“

            Sub Platform_example()
                Dim p kaip nauja platforma ' Platformos klasės pavyzdys
                MsgBox p.isLinux ' objekto svybė
                Print p.isWindows, p.OSName ' objekto savybės
            End Sub ' Platform_example

Susijusios temos

Įvedimas ir išvedimas į ekraną

GetGuiType funkcija

GetPathSeparator funkcija

Pitono skriptų iškvietimas iš „Basic“

Python programavimo pavyzdžiai

LibreOffice Python skriptai žinynas