Python : Platform class /text/sbasic/python/python_platform.xhp Platform;isLinux Platform;isMacOsX Platform;isWindows Platform;ComputerName Platform;OSName

Identifying the operating system

Identifying the operating system can be performed with Python or Basic language. %PRODUCTNAME Basic lacks Mac OS X native recognition while ComputerName property is solely available for Windows. Basic calls to Python macros help overcome such limitations.

Using a Python class:

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

Using a Basic classmodule:

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 Mac OS X as well End Property ' Platform.isLinux Public Property Get IsWindows As Boolean isWindows = ( GetGUIType()=1 ) End Property ' Platform.isWindows Public Property Get OSName As String Select Case GetGUIType() Case 1 : OSName = "Windows" Case 4 : OSName = "Linux" End Select End Property ' Platform.OSName Public Property Get PathDelimiter As String Select Case OSName Case "Linux" : PathDelimiter = ":" Case "Windows" : PathDelimiter = ";" End Select End Property ' Platform.PathDelimiter

Examples:

With Python >>> from <the_module> import Platform >>> print(Platform().isMacOSX) # object property True >>> input(Platform().OSName) # object property Darwin From Tools – Macros - Run Macro... menu. from <the_module> import Platform import screen_io as ui p = Platform() ui.MsgBox(''.join(['isMacOS: ',str(p.isMacOSX)]),0,p.OSName) With %PRODUCTNAME 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