Macros/ScriptForge/IsXRayInstalledQuickwin
Appearance
	
	
< Macros | ScriptForge
Xray is not an extension, but a Basic library installed at will. Suffice to test Xray's library presence.
Function isXRayInstalled As Boolean
	GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
	fs = CreateScriptService("ScriptForge.FileSystem")
	isXrayInstalled = fs.FolderExists(fs.BuildPath(fs.ConfigFolder, "basic/XrayTool"))
End Function
                                    from scriptforge import CreateScriptService
def isXrayInstalled():
    fs = CreateScriptService("ScriptForge.FileSystem")
	return fs.FolderExists(fs.BuildPath(fs.ConfigFolder, "basic/XrayTool"))
                                    ScriptForge.Platform.Extensions property lists all installed extension identifiers. Extension identifiers are stored in description.xml file located in .oxt compressed files.
Sub Main
	Print isOxtInstalled( "apso.python.script.organizer" )
End Sub
Function isOxtInstalled(oxtID As String) As Boolean
	Dim id As String, p As Object
	GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
	p = CreateScriptService("ScriptForge.Platform")
	For Each ID in p.Extensions
		If ID = oxtID Then
			isOxtInstalled = True : Exit For
		EndIf
	Next ' extension ID
End Function
                                    from scriptforge import CreateScriptService as getSvc
def quidAPSO():
    util = getSvc("ScriptForge.Basic")
    util.MsgBox( isOxtInstalled('apso.python.script.organizer') )
def isOxtInstalled(oxtID: str):
    p = getSvc("ScriptForge.Platform")
    return oxtID in p.Extensions