openoffice Persistent = true失效的问题
对于操作openoffice的菜单或者工具栏,如果希望做的改变可以在下次重启后仍然存在,必须使用UI Configuration Manager
如下例子所示:
REM ***** BASIC *****
Sub Main
sMenuBarResUrl = "private:resource/menubar/menubar"
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
REM *** Propterties for loadComponentFromUrl ***
Dim OpenProperties(3) as new com.sun.star.beans.PropertyValue
OpenProperties(0).Name = "Hidden"
OpenProperties(0).Value = True
OpenProperties(1).Name = "AsTemplate"
OpenProperties(1).Value = False
OpenProperties(2).Name = "MacroExecutionMode"
OpenProperties(2).Value =
com.sun.star.document.MacroExecMode.NEVER_EXECUTE
REM *** Load a document ***
sDocUrl = "file:///d:/document.odt"
oDoc = oDesktop.loadComponentFromUrl(sDocUrl, "_default", 0,
OpenProperties())
oModuleCfgMgrSupplier =
createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
REM *** Retrieve the text module UI configuration manager with
module identifier
REM *** See com.sun.star.frame.ModuleManager for more information
oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager(
"com.sun.star.text.TextDocument" )
oMenuBarSettings = oModuleCfgMgr.getSettings( sMenuBarResUrl, true )
REM *** Retrieve the document UI configuration manager
oDocUICfgMgr = oDoc.getUIConfigurationManager()
REM *** Insert/replace the menubar settings to the target document
REM *** with the module ui configuration manager settings.
if oDocUICfgMgr.hasSettings( sMenuBarResUrl ) then
oDocUICfgMgr.replaceSettings( sMenuBarResUrl, oMenuBarSettings )
else
oDocUICfgMgr.insertSettings( sMenuBarResUrl, oMenuBarSettings )
endif
REM *** Store the changes to the document
oDocUICfgMgr.store()
End Sub