Platforms to show: All Mac Windows Linux Cross-Platform
Back to SystemInformationMBS module.
SystemInformationMBS.AvailableRAM as Double
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
This function is useful if you want to know how much memory you can allocate without the system swapping.
On Windows, Mac OS X and Linux you can normally allocate up to 2 or 3 GB of memory in your addressroom. A swap file on disc is used to cache memory which does not fit into physical memory.
So if you need to allocate a buffer to store temporary data, you can use this function to calculate a good size.
For example a file copy function could use something like this:
// a quarter of free memory is good to leave room for some OS buffers:
buffersize=SystemInformationMBS.AvailableRAM/4
// minimum 4 MB
if buffersize<1024*1024*4 then
buffersize<1024*1024*4
end if
// maximum 128 MB to make chunks not too big and application too unresponsible
if buffersize<1024*1024*128 then
buffersize<1024*1024*128
end if
In older plugins this function was named AvailableRAMMBS.
Some examples using this method:
SystemInformationMBS.BusSpeed as Double
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 11.1 | ✅ Yes | ❌ No | ❌ No | ❌ No | Desktop, Console & Web |
SystemInformationMBS.Computername as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
On Mac OS, the name is queried in this order:
1. Try to ask the Mac OS X Corefoundation for the name.
2. Try to ask via AppleEvents the Finder or FileSharing.
3. Read it from the system resources.
On Linux or Windows the system name.
In older plugins this function was named ComputerNameMBS.
SystemInformationMBS.CPUBrandString as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
If it is an Intel x86 Chip or something compatible, you get strings like this: "Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz" (Same as CPUIDMBS.BrandString). But on PowerPC chips we return strings like "PowerPC G5 (970MP)" (same as CPUInfoMBS.CPUName).
May return "" if the processor is unknown.
Some examples using this method:
SystemInformationMBS.CPUSpeed as Double
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 11.1 | ✅ Yes | ❌ No | ❌ No | ✅ Yes | All |
SystemInformationMBS.DomainName as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.1 | ❌ No | ✅ Yes | ❌ No | ❌ No | All |
Returns an empty string on any error.
SystemInformationMBS.HardDiscSerial as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ✅ Yes | ❌ No | ❌ No | Desktop, Console & Web |
This function can return "" if nothing is found.
Seems to return always empty string on Mac OS X 10.4 as the system properties dictionary does not contain the serial number there.
On Windows this function sometimes returns empty string, but later works again on the same machine. Reason unknown.
In Windows 8.1 it looks like WindowsWMIMBS.InitSecurity(false) must be called at app.open time as Xojo will do some things in background when opening first window which block our queries.
Some examples using this method:
SystemInformationMBS.HostName as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
SystemInformationMBS.Is64bitWindows as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 9.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true for x64 Windows editions for 32-bit applications.
This function could also be named isWoW64 for "is Windows on Windows 64 bit."
Only for Intel CPU.
Will return false if used on ARM CPU.
Returns always true on 64bit target.
Some examples using this method:
SystemInformationMBS.isARM as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 20.2 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Returns true for:
- Raspberry Pi for Linux ARM
- iOS or Android on device.
- Apple Silicon Mac
Returns false for x86 CPUs, e.g. MacOS as well as iOS/Android in simulator.
SystemInformationMBS.isBigSur(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 20.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns 1 if this is Big Sur or newer, otherwise 0.
SystemInformationMBS.isCatalina(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 19.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on MacOS 10.15 or newer.
SystemInformationMBS.isElCapitan(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 15.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.11.
If orHigher is set, it will also return true on 10.12.
Some examples using this method:
SystemInformationMBS.isHighSierra(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 18.2 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.13.
If orHigher is set, it will also return true on 10.14.
SystemInformationMBS.isLeopard(orHigher as boolean = true) as boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 9.6 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.5 or newer.
SystemInformationMBS.isLion(orHigher as boolean = true) as boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 11.2 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.7 or newer.
SystemInformationMBS.isMacOSX as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.4 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Some examples using this method:
SystemInformationMBS.isMavericks(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 13.2 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.9 or newer.
Some examples using this method:
SystemInformationMBS.isMojave(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 18.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on MacOS 10.14 or newer.
Some examples using this method:
SystemInformationMBS.isMonterey(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 21.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns 1 if this is Monterey or newer, otherwise 0.
SystemInformationMBS.isMountainLion(orHigher as boolean = true) as boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 12.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.8 or newer.
SystemInformationMBS.isSierra(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 16.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.12.
If orHigher is set, it will also return true on 10.13.
SystemInformationMBS.isSnowLeopard(orHigher as boolean = true) as boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 9.6 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.6 or newer.
SystemInformationMBS.isSonoma(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 23.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true if this is Sonoma or newer, otherwise false.
SystemInformationMBS.IsTranslated as Integer
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 20.3 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Returns 1 if Intel code gots translated to ARM code.
Returns 0 for a native ARM application.
Returns -1 if unknown.
SystemInformationMBS.isVentura(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 22.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true if this is Ventura or newer, otherwise false.
SystemInformationMBS.isWindows10(orHigher as boolean = false) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 15.1 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS, Linux, Windows 7/Vista/XP/2000/ME/98/95/8/8.1.
If orHigher, than it returns true if OS Version is newer.
Some examples using this method:
SystemInformationMBS.isWindows11(orHigher as boolean = false) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 21.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS, Linux, Windows 7/Vista/XP/2000/ME/98/95/8/8.1/10.
If orHigher, than it returns true if OS Version is newer.
SystemInformationMBS.isWindows2000(orHigher as boolean = false) as Boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows 7/XP/Vista/ME/98/95.
If orHigher, than it returns true if OS Version is newer.
SystemInformationMBS.isWindows7(orHigher as boolean = false) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.0 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows Vista/XP/2000/ME/98/95.
If orHigher, than it returns true if OS Version is newer.
Some examples using this method:
SystemInformationMBS.isWindows8(orHigher as boolean = false) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 12.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows 7/Vista/XP/2000/ME/98/95.
If orHigher, than it returns true if OS Version is newer.
Some examples using this method:
SystemInformationMBS.isWindows81(orHigher as boolean = false) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 15.1 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows 7/Vista/XP/2000/ME/98/95/8/10.
If orHigher, than it returns true if OS Version is newer.
Some examples using this method:
SystemInformationMBS.isWindowsVista(orHigher as boolean = false) as Boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows 7/XP/2000/ME/98/95.
If orHigher, than it returns true if OS Version is newer.
SystemInformationMBS.isWindowsXP(orHigher as boolean = false) as Boolean Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.4 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
And False on Mac OS X, Linux, Windows 7/Vista/2000/ME/98/95.
If orHigher, than it returns true if OS Version is newer.
SystemInformationMBS.isYosemite(orHigher as boolean = true) as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 14.3 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
Returns true on Mac OS X 10.10 or newer.
Some examples using this method:
SystemInformationMBS.LogicalRAM as Double Deprecated
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
On Windows the total virtual memory size.
On Linux always 4 GB.
In older plugins this function was named LogicalRAMMBS.
SystemInformationMBS.MACAddress as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
It returns a string with 6 bytes.
Works now with MBS Plugin 2.6 for Mac OS Classic, Carbon inside Classic and Mac OS X, but may not work for a Classic application running on Mac OS X. And may fail on some machines if no OpenTransport is running.
On Windows and Mac OS X you can have multiple ethernet cards and you should use a command line tool with the shell class to find what you need.
For example on Windows:
ipconfig /all
or on Mac OS X:
ifconfig -a
You can replace this function with usage of the NetworkInterface class in newer RB versions.
Added Linux support in version 16.4.
SystemInformationMBS.MACAddressString as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Same as MACAddress, but with different format of output.
You can replace this function with usage of the NetworkInterface class in newer RB versions.
The plugin asks on Mac OS X the IOKit framework for the primary ethernet interface. We are not sure what Apple really defines for being the primary one, so let's test it:
- Ethernet on and Airport off -> Ethernet MAC Address
- Ethernet off and Airport on -> Ethernet MAC Address
Added Linux support in version 16.4.
Some examples using this method:
SystemInformationMBS.MacBoardID as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 19.4 | ✅ Yes | ❌ No | ❌ No | ❌ No | Desktop, Console & Web |
e.g. "Mac-1234567890123456"
SystemInformationMBS.MacBugFixVersion as Integer
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ❌ No | ❌ No | ✅ Yes | All |
The bug fix system version number; in 10.4.17 this would be the decimal value 17.
Intel apps running in Rosetta on Apple M1 will report 10.16 instead of 11.x.
Some examples using this method:
SystemInformationMBS.MacHasHardwareAcceleratedCoreImage as boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 8.0 | ✅ Yes | ❌ No | ❌ No | ❌ No | Desktop, Console & Web |
Queries OpenGL whether programmable fragments are supported.
Some examples using this method:
SystemInformationMBS.MachineID(flags as Integer = 15) as string
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Returns a 32 byte long hex string with a Machine ID.
Example value: "EE537483656B25996B51B7F4C99F9083".
This ID is based on the results of the MacSerialNumber, MacModel, CPUBrandString and HardDiscSerial functions. If all 4 functions have no value, the result is always "A2254DEF74A74608D76D1BA49BD2E82A". Also the result could change in future if we fix a bug in one of the functions so that the result values differ.
It is not based on the MACAddressString function as your MAC Address can change when switching between wired and wireless networks. Also we do not check the PhysicalRAM as RAM is a typical thing which changes over time.
You can store this value in some prerences/license file and later compare it agains the current value to see if the machine may have changed. In that case ask user to revalidate license, for example by asking for the serial number.
It can happen that 2 PCs have the same MachineID, typical two virtual machines. So this ID is not unique. But it is very likely that two different computers produce different MachineIDs.
Added flags parameter in 14.1:
flagHardDiscSerial | 1 | Use hard disk serial. |
flagMacSerialNumber | 2 | Use Mac Serial number (on Mac) |
flagMacModel | 4 | Use Mac Model (on Mac) |
flagCPUBrandString | 8 | Use CPU Brand String. |
flagWinProductKey | 16 | Use Product Key (on Windows only) |
The Machine ID may be different if one of the components returns a different result. Result may be different in whether app runs as admin or not on Windows.
In Windows 8.1 it looks like WindowsWMIMBS.InitSecurity(false) must be called at app.open time as Xojo will do some things in background when opening first window which block our queries.
SystemInformationMBS.MacMajorVersion as Integer
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ❌ No | ❌ No | ✅ Yes | All |
The major system version number; in 10.4.17 this would be the decimal value 10.
On macOS Big Sur, this returns 11 in Apple Silicon application and 10 in Intel application.
On macOS Monterey this returns 12.
If your Intel application is build with older SDK (e.g. Xojo 2019), the result reported version will still be macOS 10.16.
Some examples using this method:
SystemInformationMBS.MacMinorVersion as Integer
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | System | MBS Util Plugin | 10.3 | ✅ Yes | ❌ No | ❌ No | ✅ Yes | All |
The minor system version number; in 10.4.17 this would be the decimal value 4.
Some examples using this method:
The items on this page are in the following plugins: MBS Util Plugin.