Probleme beim Clipboard auslesen
Verfasst: Do, 26.01.2006 11:38
Ich habe in meinen Makros folgende Routine eingebaut, um das Clipboard auslesen zu können:
Das funktioniert allerdings nur sehr eingeschränkt. Obwohl Text in der Zwischenablage vorhanden ist, wird dieser nicht zurückgegeben, das funktioniert nur, wenn der Text in Write selber kopiert wurde oder in ganz seltenen Fällen auch mit anderen Anwendungen.
Alles in allem ist diese Methode nicht brauchbar, weil eben wie gesagt nur in den seltensten Fällen läuft.
Daraufhin habe ich mal den Makro-Rekorder eingeschaltet und der hat mir dann diesen Vorschlag gemacht, der auch 100%ig läuft.
Das einzige Problem, was ich mit diesem Code habe, ist, daß ich gerne den Inhalt der Zwischenablage in eine Variable speichern würde (um dort weiter zu verarbeiten) und nicht gleich sofort ins Dokument einfügen würde.
Weiß jemand was ich machen muß, damit entweder der erste Code richtig geht oder damit das zweite Beispiel meinen Wünschen entsprechend läuft?
Vielen Dank!
Gruß,
Vegeta
Code: Alles auswählen
Global Function GetClipboard() as string
on error resume next
dim ClipBoardHandle, DataObj, DataTypSeq
' Routine fürs Clipboard
ClipBoardHandle = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
DataObj = createUnoService("com.sun.star.datatransfer.XTransferable")
DataObj = ClipBoardHandle.getContents()
DataTypSeq = DataObj.getTransferDataFlavors() 'Array aller Inhalte
GetClipboard = DataObj.getTransferData(DataTypSeq(0))
end function
Alles in allem ist diese Methode nicht brauchbar, weil eben wie gesagt nur in den seltensten Fällen läuft.
Daraufhin habe ich mal den Makro-Rekorder eingeschaltet und der hat mir dann diesen Vorschlag gemacht, der auch 100%ig läuft.
Code: Alles auswählen
Global Sub Clipboard_einfuegen()
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SelectedFormat"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:ClipboardFormatItems", "", 0, args1())
end sub
Weiß jemand was ich machen muß, damit entweder der erste Code richtig geht oder damit das zweite Beispiel meinen Wünschen entsprechend läuft?
Vielen Dank!
Gruß,
Vegeta