Description
Uninstalls an add-on file from Softimage. This must be a file in either the add-on path (siAddonPath), or the user add-on path (siUserAddonPath). Attempting to uninstall an add-on from the original installation path results in an error.
This command is the scripting equivalent of launching the Uninstall option from the File > Addon location in the main menu.
Scripting Syntax
UnInstallAddon( FileName )
Parameters
|
Parameter |
Type |
Description |
|
FileName [in/out] |
The .xsiaddon file. |
Examples
JScript Example
/* --------------------------------------------------------- This script demonstrates how to install and uninstall user add-ons and factory add-ons. --------------------------------------------------------- */ // Get the filename of an available add-on file, and install it, in the user add-on path. var myAddonFile = createAddonForDemo( siUserPath ); Application.LogMessage( "Installing: " + myAddonFile ); InstallAddon( myAddonFile, siUserAddonPath ); // Now find the installed file. myAddonFile = XSIUtils.BuildPath( Application.InstallationPath(siUserAddonPath), "DemoAddon.xsiaddon" ); Application.LogMessage( "Uninstalling: " + myAddonFile ); UnInstallAddon( myAddonFile ); killCmdForDemo(); // clean up the command that was loaded from the add-on // Now re-install it to the AddonPath. myAddonFile = createAddonForDemo( siFactoryPath ); Application.LogMessage( "Installing: " + myAddonFile ); InstallAddon( myAddonFile, siAddonPath ); // Now uninstall the add-on (again). myAddonFile = XSIUtils.BuildPath( Application.InstallationPath(siAddonPath), "DemoAddon.xsiaddon" ); Application.LogMessage( "Uninstalling: " + myAddonFile ); UnInstallAddon( myAddonFile ); killCmdForDemo(); // the plug-in is not automatically unloaded when the add-on is uninstalled //--------------------------------------------------------- // Output from this script: //INFO : "Installing: <UserPath>\Addons\DemoAddon.xsiaddon" //INFO : "Uninstalling: <UserPath>\Addons\DemoAddon.xsiaddon" //INFO : "Installing: <FactoryPath>\Addons\DemoAddon.xsiaddon" //INFO : "Uninstalling: <FactoryPath>\Addons\InstalledAddons\DemoAddon.xsiaddon" //--------------------------------------------------------- // *** Helper functions *** // // Create an add-on package on the fly function createAddonForDemo( in_Where ) { var l_AddonFile = GetAddonFileLocation( in_Where ); var l_PluginFile = createCmdForDemo(); var l_AddonObj = Application.CreateAddon(); l_AddonObj.AddItem( siPluginAddonItemType, l_PluginFile ); l_AddonObj.Save( l_AddonFile ); // Now that it's in the .xsiaddon file, kill the source killCmdForDemo(); return l_AddonFile; } // Validate the add-on file location function GetAddonFileLocation( in_Where ) { var l_folderLocation = (in_Where == siUserPath) ? Application.InstallationPath( siUserAddonPath ) : Application.InstallationPath( siAddonPath ); var l_fso = new ActiveXObject( "Scripting.FileSystemObject" ); // Make sure the Addons folder exists if (! l_fso.FolderExists(l_folderLocation) ) { l_fso.CreateFolder( l_folderLocation ); } return XSIUtils.BuildPath( l_folderLocation, "DemoAddon.xsiaddon" ); } // Create the self-installing command plug-in on disk and load it function createCmdForDemo() { var l_fileLocation = XSIUtils.BuildPath( Application.InstallationPath(siUserPath), "Application", "Plugins", "JSCmdForAddonsDemoPlugin.js" ); var l_fso = new ActiveXObject( "Scripting.FileSystemObject" ); var l_ts = l_fso.CreateTextFile( l_fileLocation ); l_ts.Write( writeCmdImpl() ); l_ts.Close(); Application.LoadPlugin( l_fileLocation ); return l_fileLocation; } // Supply the implementation of the self-installing command plug-in function writeCmdImpl() { return XSILoadPlugin.toString() + "\n\n" + JSCmdForAddonsDemo_Init.toString() + "\n\n" + JSCmdForAddonsDemo_Execute.toString(); } function XSILoadPlugin( in_reg ) { in_reg.Author = "InstallAddonDemo"; in_reg.Name = "JSCmdForAddonsDemoPlugin"; in_reg.Major = 1; in_reg.Minor = 0; in_reg.RegisterCommand("JSCmdForAddonsDemo","JSCmdForAddonsDemo"); return true; } function JSCmdForAddonsDemo_Init( in_ctxt ) { var oCmd = in_ctxt.Source; oCmd.Description = "'Hello World' command for demonstration"; oCmd.ReturnValue = false; return true; } function JSCmdForAddonsDemo_Execute( ) { Application.LogMessage("Hello, World!", siInfo); return true; } // Remove the self-installing command plug-in (and delete from disk) function killCmdForDemo() { var p = new Enumerator( Application.Plugins ); for ( ; !p.atEnd(); p.moveNext() ) { var plugin = p.item(); if ( plugin.Name == "JSCmdForAddonsDemoPlugin" ) { Application.UnloadPlugin( plugin.Filename, true ); break; } } }
See Also
|
|
|
|
Autodesk Softimage v7.5