Re: Text aus Zwischenablage in Variable speichern
Verfasst: So, 01.02.2009 00:18
Hi BaNnEd,
Folgender Code sollte den Job erledigen:
Viel Erfolg.
Jürgen
Den Inhalt aus der Zwischenablage in eine Variable schreiben und übergeben ist aber auch nicht so einfach, denn es könnte ja auch sein, dass z.B. eine Grafik in der Zwischenablage ist.BaNnEd hat geschrieben:jetzt stehe ich nur vor dem Problem, dass er mir bei jedem Makro nur ein vorgegebens wort als textmarker setzt:
Folgender Code sollte den Job erledigen:
Code: Alles auswählen
Sub ConvertClipToText
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()
Dim msg$, iLoc%, outS
msg = ""
iLoc = -1
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)
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Bookmark"
args1(0).Value = TextClipboard
dispatcher.executeDispatch(document, ".uno:InsertBookmark", "", 0, args1())
End If
End Sub
Jürgen