Hi,
danke schonmal für deine Antowrt nur leider ist das nicht das was ich brauche.
Also das heißt ich brauche das schon aber das habe ich schon herausgefunden
Mein Problem is das der User durchaus eingaben in einigen Freigegebenen Feldern machen darf, nur darf er in diese Felder nichts hineinkopieren oder herauskopieren oder Ausschneiden.
Auch das Autovervolständigen in den Zellen durch Herunterziehen (z.B. Automatisches berechnen des Datums) darf der User nicht können.
Es sollen wirklich nur manuelle Eingaben erlaubt sein.
Ich hoffe es ist jetzt etwas klarer.
Ich habe hier auch schon etwas gefunden, ein Script das zumindestens zum Teil tut was ich möchte.
Hier erstmal das Script:
Code: Alles auswählen
Option Explicit
Global oDispatchInterceptor
Global oSlaveDispatchProvider
Global oMasterDispatchProvider
Global oFrame
Global bDebug As Boolean
'________________________________________________________
Sub RegisterInterceptor
Dim oFrame : oFrame = ThisComponent.currentController.Frame
Dim s$ : s = "com.sun.star.frame.XDispatchProviderInterceptor"
oDispatchInterceptor = CreateUnoListener("ThisFrame_", s)
oFrame.registerDispatchProviderInterceptor(oDispatchInterceptor)
End Sub
'________________________________________________________
Sub ReleaseInterceptor()
On Error Resume Next
oFrame.releaseDispatchProviderInterceptor(oDispatchInterceptor)
End Sub
'________________________________________________________
Function ThisFrame_queryDispatch ( oUrl As Object, _
sTargetFrameName As String, lFlags As Long ) As Variant
Dim oDisp
Dim s$
'the slot protocol causes ooo crash...
If oUrl.protocol = "slot:" Then
Exit Function
End If
If bDebug Then
Print oUrl.complete, sTargetFrameName, lFlags
End If
s = sTargetFrameName
oDisp = oSlaveDispatchProvider.queryDispatch( oUrl, s, lFlags )
'do your management here
Select Case oUrl.complete
Case ".uno:Copy" 'disable the save command
Exit Function
Case ".uno:Insert" 'disable the save command
Exit Function
Case ".uno:Cut" 'disable the save command
Exit Function
Case Else
' do nothing
End Select
ThisFrame_queryDispatch = oDisp
End Function
'________________________________________________________
Function ThisFrame_queryDispatches ( mDispArray ) As Variant
ThisFrame_queryDispatches = mDispArray
End Function
'________________________________________________________
Function ThisFrame_getSlaveDispatchProvider ( ) As Variant
ThisFrame_getSlaveDispatchProvider = oSlaveDispatchProvider
End Function
'________________________________________________________
Sub ThisFrame_setSlaveDispatchProvider ( oSDP )
oSlaveDispatchProvider = oSDP
End Sub
'________________________________________________________
Function ThisFrame_getMasterDispatchProvider ( ) As Variant
ThisFrame_getMasterDispatchProvider = oMasterDispatchProvider
End Function
'________________________________________________________
Sub ThisFrame_setMasterDispatchProvider ( oMDP )
oMasterDispatchProvider = oMDP
End Sub
'________________________________________________________
Sub ToggleDebug()
'be carefull! you will have a debug message
' for each dispatch....
bDebug = Not bDebug
End Sub
Das Script deaktiviert zumindestens die Menübefehle aber nicht die Tastenkürzel (STRG+C, STRG+C und STRG+V) und Autovervollständigen wird auch nicht deaktiviert.
Wenn also noch jemand ein Tip hat, ich bin für jede Lösung offen.
*Korrektur:
Es werden doch die Tastenkürzel unterbunden. Allerdings nach wie vor das Autovervollständigen nicht. Also wenn diesbezüglich noch jemand eine Lösung hat, immer her damit.