Работа с буфером обмена (1Cv8)

Материал из КинтВики
Перейти к: навигация, поиск


Задача

Нужно поместить строку в буфер обмена и/или извлечь из него.

Использование поля html-документа

Источник: http://infostart.ru/public/16800/

//поместить в буфер

ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "ПолеHTMLДокумента", Ложь);
Окно = ЭлементыФормы.ПолеHTMLДокумента.Документ.ParentWindow;
Окно.ClipboardData.SetData("Text", ТекстПисьма);
ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("ПолеHTMLДокумента")));

//вставить из буфера

ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "ПолеHTMLДокумента", Ложь);
Окно = ЭлементыФормы.ПолеHTMLДокумента.Документ.ParentWindow;
СодержимоеБуфера = Окно.ClipboardData.GetData("Text");
ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("ПолеHTMLДокумента")));
ТекстПисьма = ТекстПисьма + СодержимоеБуфера;

Использование объекта InternetExplorer.Application

Источник: http://infostart.ru/public/63694/

my_obj = Новый COMОбъект("InternetExplorer.Application");
my_obj.Navigate("about:blank");
my_text = my_obj.Document.ParentWindow.ClipboardData.GetData("text");
my_obj.Quit();

Кроме текста можно еще использовать данные типа:

  • "URL" Формат URI
  • "File" Файловый формат
  • "HTML" Формат HTML
  • "Image" Формат графического образа

Проблемы:

  • при вставке в буфер обмена InternetExplorer может требовать подтверждения, в зависимости от настроек

Использование htmlfile

Работает только на чтение

Set oHtml = CreateObject("htmlfile")
sClipText = oHtml.ParentWindow.ClipboardData.GetData("text")
WScript.Echo sClipText