Rozpoznávání operačního systému

Rozpoznání operačního systému lze provést pomocí jazyků Python i Basic.

note

Vlastnost ComputerName je k dispozici pouze v systému Windows. Omezením jazyka Collabora Office Basic se lze vyhnout voláním maker Pythonu z Basicu.


Pomocí třídy Pythonu:

""" 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

Pomocí moduly třídy Basicu:

tip

Collabora Office Basic neumožňuje nativně rozpoznat systém MacOS X. Tuto platformu lze identifikovat pomocí rozhraní pro programování aplikací (API) pro Collabora Office.


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
    ' Vrátí název platformy jako "MAC", "UNIX", "WIN"
    ' Odvozeno z funkce "Tools.UCB.ShowHelperDialog"
    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

Příklady:

Pomocí Pythonu

>>> from < the_module > import Platform

>>> print(Platform().isMacOSX) # vlastnost objektu

True

>>> input(Platform().OSName) # vlastnost objektu

Darwin

Z nabídky Nástroje – Makra – Spustit makro.

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

Pomocí jazyka Collabora Office Basic

Sub Platform_example()
    Dim p As New Platform ' instance třídy Platform
    MsgBox p.isLinux ' vlastnost objektu
    Print p.isWindows, p.OSName ' vlastnosti objektu
End Sub ' Platform_example

Podpořte nás!