OpenOffice Basic и буфер обмена #578472


#0 by sttt
Как программно получить текст из буфера обмена? Есть такой вариант, но что то он не нравиться:    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                wait(cInterfaceRedraw) ' Ждём отрисовку интерфейса                dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") ' Диспетчер        dispatcher.executeDispatch(oTempDoc.CurrentController.Frame, ".uno:Paste", "", 0, Array) ' Вставка во временный документ        LocalProgress_SetValue
#1 by sttt
up
#2 by Jaap Vduul
Clipboard = CreateUnoService(ServiceManager, "com.sun.star.datatransfer.clipboard.SystemClipboard"); ClipboardContent = Clipboard.getContents; DataFlavors = ClipboardContent.getTransferDataFlavors; Для Индекс = DataFlavors.GetLowerBound По DataFlavors.GetUpperBound Цикл    ЭлементМассива = DataFlavors.GetValue(Индекс);    Если ЭлементМассива.MimeType = "text/plain;charset=utf-16" Тогда        ТекстБуфераОбмена = ClipboardContent.getTransferData(ЭлементМассива);    КонецЕсли; КонецЦикла;
#3 by sttt
Спасибо! тоже разобрался ))    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
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С