Имя: Пароль:
IT
 
OpenOffice Basic и буфер обмена
0 sttt
 
05.11.11
17:14
Как программно получить текст из буфера обмена?

Есть такой вариант, но что то он не нравиться:

   If StarDesktop.CurrentComponent.supportsService("com.sun.star.text.TextDocument") then
       
       sTempURL  = "private:factory/swriter" ' Адрес для создания чистого, временого текстового документа
       oWorkDocument = ThisComponent
       
       oDesktop = CreateUnoService("com.sun.star.frame.Desktop")
       oTempDoc = oDesktop.loadComponentFromURL(sTempURL , "_default", 0, Array()) ' Создаём временный документ
       
       oTempDoc.CurrentController.Frame.ContainerWindow.setVisible(False)
       
       LocalProgress_Start(sMSG_PRGRS_START)
       LocalProgress_SetRange(0, 2)
       LocalProgress_SetValue(1)
       
       wait(cInterfaceRedraw) ' Ждём отрисовку интерфейса
       
       dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") ' Диспетчер
       dispatcher.executeDispatch(oTempDoc.CurrentController.Frame, ".uno:Paste", "", 0, Array()) ' Вставка во временный документ

       LocalProgress_SetValue(2)
1 sttt
 
05.11.11
18:17
up
2 Jaap Vduul
 
05.11.11
19:03
Clipboard = CreateUnoService(ServiceManager, "com.sun.star.datatransfer.clipboard.SystemClipboard");
ClipboardContent = Clipboard.getContents();
DataFlavors = ClipboardContent.getTransferDataFlavors();
Для Индекс = DataFlavors.GetLowerBound(0) По DataFlavors.GetUpperBound(0) Цикл
   ЭлементМассива = DataFlavors.GetValue(Индекс);
   Если ЭлементМассива.MimeType = "text/plain;charset=utf-16" Тогда
       ТекстБуфераОбмена = ClipboardContent.getTransferData(ЭлементМассива);
   КонецЕсли;
КонецЦикла;
3 sttt
 
05.11.11
21:14
(2) Спасибо! тоже разобрался ))

   sClipName = "com.sun.star.datatransfer.clipboard.SystemClipboard"
   oClip = createUnoService(sClipName)
   oTRX = createUnoListener("TR_", "com.sun.star.datatransfer.XTransferable")
   oClipContents = oClip.getContents(oTRX, null)
   oTypes = oClipContents.getTransferDataFlavors()
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.