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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章