Top > OOoBasic > Generic > DisableCommands

コマンドの無効化 Edit

コマンドを無効にしてメニューなどから項目を実行できないようにします。コマンドの無効化は /org.openoffice.Office.Commands/Execute/Disabled 以下にコマンドを追加することで行います。一時的に行う場合でもこの設定を変更、元に戻す必要があります。無効化は dispatch の最初の判定のためコマンドのハンドラなどに処理が渡らなくなります。

コマンドは以下参照。コマンドに .uno: を付けるとコマンド URL になります。

この項目でのコマンドの無効化はすべてのドキュメントに影響し、ドキュメントごとのコマンドの無効化には利用できません。

無効化 Edit

以下のようにして /org.openoffice.Office.Commands/Execute/Disabled に node を追加します。node ごとにコマンド一つしか設定できないため、無効化するコマンドごとに新しい node を追加します。最後に commitChanges で設定を反映させます。

Sub disablecommands_1
  Dim oProvider As Object, oCfgWriter As Object
  Dim oNode(0) As New com.sun.star.beans.PropertyValue
  oProvider = CreateUnoService("com.sun.star.configuration.ConfigurationProvider")
  oNode(0).Name = "nodepath"
  oNode(0).Value = "/org.openoffice.Office.Commands/Execute/Disabled"
  oCfgWriter = oProvider.createInstanceWithArguments( _
    "com.sun.star.configuration.ConfigurationUpdateAccess", oNode )
    
  sCommands = Array("NewDoc","Open")
  
  For i = 0 To UBound(sCommands)
    oElem = oCfgWriter.createInstanceWithArguments(Array())
    oElem.Command = sCommands(i)
    oCfgWriter.insertByName("Command_" & sCommands(i),oElem)
  Next i
  oCfgWriter.commitChanges()
End Sub

無効化エントリの削除 Edit

一度無効化したコマンドは有効にするまでずっと無効化されたままです。OOo を再起動しても元に戻ることはありません (設定ファイルを削除すれば有効化できますが)。コマンドを有効にするには次のようにして無効化コマンドのエントリを削除します。

Sub disablecommands_2
  Dim oProvider As Object, oCfgWriter As Object
  Dim oNode(0) As New com.sun.star.beans.PropertyValue
  oProvider = CreateUnoService("com.sun.star.configuration.ConfigurationProvider")
  oNode(0).Name = "nodepath"
  oNode(0).Value = "/org.openoffice.Office.Commands/Execute/Disabled"
  oCfgWriter = oProvider.createInstanceWithArguments( _
    "com.sun.star.configuration.ConfigurationUpdateAccess", oNode )
  
  sCommands = oCfgWriter.ElementNames
  
  For i = 0 To UBound(sCommands)
    oCfgWriter.removeByName(sCommands(i))
  Next i
  oCfgWriter.commitChanges()
End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes