Libre Office

Zwischenablage befüllen / einfügen

Alles zur Programmierung im LibreOffice.
Eric March
Beiträge: 54
Registriert: Do 16. Jun 2011, 16:08

Re: Zwischenablage befüllen / einfügen

Beitrag von Eric March » Di 14. Feb 2012, 21:08

OK, die Befehlszeilen existieren tatsächlich noch anderswo. Da werde ich mal umräumen müssen.
Das für den Moment, ich werde gerade von unserem IIS geärgert.
Eric March

Eric March
Beiträge: 54
Registriert: Do 16. Jun 2011, 16:08

Re: Zwischenablage befüllen / einfügen

Beitrag von Eric March » Mi 15. Feb 2012, 20:37

In der Tat - LO schmiert mit einer C++-Fehlermedung ab. Also die Module wieder scharfgemacht und nun geht es.

Was mich interessiert sind diese ‹oTR› nebst dem ‹Tr_›. Wie weit spielt das in den Funktionsnamen eine Rolle?

Code: Alles auswählen

REM Module Zwischenablage

Global TextInString As String
Global Nachricht as string

Sub ZwischenablageInText
Dim oClip, oClipContents, oTypes
Dim oConverter, convertedString$
Dim i%, iPlainLoc%
 iPlainLoc = -1
 oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
 oConverter = createUnoService("com.sun.star.script.Converter")
 oClipContents = oClip.getContents()
 oTypes = oClipContents.getTransferDataFlavors()
 For i=LBound(oTypes) To UBound(oTypes)
  If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
   iPlainLoc = i
   Exit For
  End If
 Next
 If (iPlainLoc >= 0) Then
  TextClipboard = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
 End If
print TextClipboard
End Sub

Sub TextInZwischenablage()
 BeispielText = "123456789"
 ' create SystemClipboard instance
 ZwAbl = CreateUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
 oTR = CreateUnoListener("Tr_", "com.sun.star.datatransfer.XTransferable")
 ZwAbl.SetContents(oTR,Null)
 TextInString = BeispielText
End Sub
Function Tr_getTransferData(ZAFlavor As com.sun.star.datatransfer.DataFlavor)
 Nachricht = Nachricht & "Tr_getTransferData" & Chr(10)
 If (ZAFlavor.MimeType = "text/plain;charset=utf-16") Then
  Tr_getTransferData() = TextInString
 End If
End Function
Function Tr_getTransferDataFlavors()
 Dim ZAFlavor As New com.sun.star.datatransfer.DataFlavor
 Nachricht = Nachricht & "Tr_getTransferDataFlavors" & Chr(10)
 ZAFlavor.MimeType = "text/plain;charset=utf-16"
 ZAFlavor.HumanPresentableName = "Unicode-Text"
 Tr_getTransferDataFlavors() = Array(ZAFlavor)
End Function
Function Tr_isDataFlavorSupported(ZAFlavor As com.sun.star.datatransfer.DataFlavor) As Boolean
 Nachricht = Nachricht & "Tr_isDataFlavorSupported" & Chr(10)
 If ZAFlavor.MimeType = "text/plain;charset=utf-16" Then
  Tr_isDataFlavorSupported = True
 Else
  Tr_isDataFlavorSupported = False
 End If
End Function
Eric March

Open Office
Antworten