Hi,

you can use the whole API via our CLI bridge that means via VB.Net as well. Everythig you do in the macro can be done from VB.Net directly and it is possible to disable commands. The SDK contains an example (examples/DevelopersGuide/OfficeDev/DisableCommands) that show how you can do it from Java. You can find a description in the DevGuide as well.

Juergen



openjack wrote:
Hi all,

I'm try to explain my problem, just for check if I'm following the better
way to solve it.

My VB .NET procedure opens a document with Writer, but I need to hide some
functions such as Print or SaveAs. I'm able to hide some toolbar buttons
ceating a new ooBasic macro, but I can't do it from VB .NET; for this reason
I need to launch a ooBasic macro from VB .NET

It's the better way or there is another way?


So, I put here a few lines of code.

The following OOBASIC MACRO code is able to hide some tool bar's buttons.

[code]Sub Main
     REM *** Initialize strings
     sToolbar = "private:resource/toolbar/standardbar"
     sCmdId   = ".uno:Save"
REM *** Retrieve the desktop service
     oDesktop = createUnoService("com.sun.star.frame.Desktop")

     REM *** Retrieve the current frame and layout manager
     oCurrFrame = oDesktop.getCurrentFrame()
     oLayoutManager = oCurrFrame.LayoutManager

     REM *** Try to retrieve the toolbar from the layout manager
     oToolbar = oLayoutManager.getElement( sToolbar )
REM *** Retrieve settings from toolbar ***
     oToolbarSettings = oToolbar.getSettings( true )
index = -1
     nCount = oToolbarSettings.getCount()
     for i = 0 to nCount-1
         oToolbarButton() = oToolbarSettings.getByIndex( i )
         nToolbarButtonCount = ubound(oToolbarButton())
         for j = 0 to nToolbarButtonCount
             if oToolbarButton(j).Name = "CommandURL" then
                 if oToolbarButton(j).Value = sCmdId then
                     index = i
                 end if
             endif
         next j
     next i

     if index <> -1 then
         REM *** Retrieve current Persistent state
         REM *** from property
         bPersistent = oToolbar.Persistent
REM *** To make our changes non-persistent
         REM *** we have to set the Persistent property
         REM *** to false
         oToolbar.Persistent = false
REM *** Retrieve button settings
         oButtonSettings = oToolbarSettings.getByIndex( index )
REM *** Change the visibility property of the button
         for j = 0 to ubound(oButtonSettings())
             if oButtonSettings(j).Name = "IsVisible" then
                 oButtonSettings(j).Value = FALSE
             endif
         next j
REM *** Replace button settings
         oToolbarSettings.replaceByIndex( index, oButtonSettings )

         REM *** Set new settings at our toolbar
         oToolbar.setSettings( oToolbarSettings )

         REM *** Reset Persistent property to old value
         oToolbar.Persistent = bPersistent
      end if
End Sub [/code]


Now... this VB .NET code is able to open an Open Office document.

[code]
        Dim oSM                   'Root object for accessing OpenOffice from
VB
        Dim oDesk, oDoc As Object 'First objects from the API
        Dim arg()                 'Ignore it for the moment !
        Dim OpenPar(1) As Object 'a Visual Basic array, with 3 elements
        OpenPar(0) = MakePropertyValue("ReadOnly", False)
        OpenPar(1) = MakePropertyValue("Password", "secret")

        'Instanciate OOo : this line is mandatory with VB for OOo API
        oSM = CreateObject("com.sun.star.ServiceManager")
        'Create the first and most important service
        oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

        'Open an existing doc (pay attention to the syntax for first
argument)
        oDoc = oDesk.loadComponentFromURL("file:///c:/doc.sxw", "_blank", 0,
OpenPar)
[/code]



How can I merge these two code snippet?

thank u!



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to