SystemProperty$ ( property$ )

Parameters

property$ - name of the property to read (not case sensitive); see the list below

Description

Returns a piece of system information, such as a special folder or a runtime handle.

Useful for finding standard Windows folders, checking what the program is running on, or fetching window handles to pass to a DLL. The supported properties are:

"os" : operating system name ("Windows")
"cpu" : processor architecture the program is running as ("x86" or "x64")
"direct3d12" : "1" when the Direct3D 12 renderer is active, "0" otherwise
"appdir" : folder containing the program's executable
"windowsdir" : the Windows folder
"systemdir" : the Windows System folder
"tempdir" : the folder for temporary files
"apphwnd" : the program window's handle, for use with DLLs
"apphinstance" : the application instance handle, for use with DLLs

Any other name returns "". In particular, the DirectX 7 object handles that classic Blitz3D exposed (Direct3D7, Direct3DDevice7, DirectDraw7 and friends) no longer exist on the modern Direct3D 12 runtime, so asking for them returns an empty string - code that fed them to old DLLs needs rethinking rather than a different property name.

See also: CommandLine, GetEnv, CallDLL.

Example

; SystemProperty Example
; ----------------------

; SystemProperty returns system information as a string.

Print "Folder properties:"
Print "  systemdir    = "+SystemProperty("systemdir")
Print "  windowsdir   = "+SystemProperty("windowsdir")
Print "  tempdir      = "+SystemProperty("tempdir")
Print "  appdir       = "+SystemProperty("appdir")

Print ""

; Handle properties are for advanced use with third-party DLLs
Print "Handle properties:"
Print "  apphwnd      = "+SystemProperty("apphwnd")
Print "  apphinstance = "+SystemProperty("apphinstance")

Print ""
Print "Press any key to close the example"
WaitKey

End

Index