На этот раз я правильно прочитал вопрос и понял, что coonj хочет получить HTML-код из буфера обмена, включая теги.
Я считаю, что это довольно сложно. Вам необходимо прочитать буфер обмена с помощью вызовов Windows API. А затем проанализируйте полученную строку CF_HTML, в которой есть несколько дурацких заголовков, добавленных поверх HTML.
- Статья базы знаний Майкрософт с кодом API Windows для чтения CF_HTML из буфера обмена (функция GetHTMLClipboard).
Тогда вы, вероятно, захотите проигнорировать дурацкие заголовки. Microsoft документирует формат здесь . Пример фрагмента CF_HTML показан ниже. Возможно, вы могли бы придумать какой-нибудь метод догадки, пропустив первые несколько строк.
Version:0.9
StartHTML:71
EndHTML:170
StartFragment:140
EndFragment:160
StartSelection:140
EndSelection:160
<!DOCTYPE>
<HTML>
<HEAD>
<TITLE>The HTML Clipboard</TITLE>
<BASE HREF="http://sample/specs">
</HEAD>
<BODY>
<!--StartFragment --> <P>The Fragment</P>
<!--EndFragment -->
</BODY>
</HTML>
Возможно, стоит подумать, есть ли другой способ решения вашей проблемы. E, g, браузер всегда будет Internet Explorer? Можете ли вы получить то, что вам нужно, пройдясь по дереву HTML с помощью объектной модели COM?
EDIT: coonj попробовал это сейчас и говорит, что "функция GetHTMLClipboard, похоже, работает как с Firefox, так и с IE, и не похоже, что она добавляет туда эти заголовки"