Как я могу прочитать необработанные (CF_HTML) данные буфера обмена на веб-странице или C #? - PullRequest
1 голос
/ 27 сентября 2008

Если я перетаскиваю выделенную веб-страницу из Firefox в HTML-Kit, HTML-Kit спрашивает меня, хочу ли я вставить текст или HTML. Если я выберу «текст», я получу это:

Version:0.9
StartHTML:00000147
EndHTML:00000516
StartFragment:00000181
EndFragment:00000480
SourceURL:http://en.wikipedia.org/wiki/Herodotus
<html><body>
<!--StartFragment-->Additional details have been garnered from the <i><a href="http://en.wikipedia.org/wiki/Suda" title="Suda">Suda</a></i>, an 11th-century encyclopaedia of the <a href="http://en.wikipedia.org/wiki/Byzantium" title="Byzantium">Byzantium</a> which likely took its information from traditional accounts.<!--EndFragment-->
</body>
</html>

Согласно MSDN , это данные буфера обмена в формате "CF_HTML". То же самое в системах OS X и Linux?

Есть ли какой-нибудь способ получить доступ к такой подробной информации (в отличие от простого фрагмента клипа) в операции перетаскивания веб-страницы на веб-страницу? Как насчет настольного приложения C # WinForms?

Ответы [ 2 ]

1 голос
/ 27 сентября 2008

Приложение WinForms может использовать Clipboard.GetText , чтобы получить его. Однако я не думаю, что есть способ сделать это на веб-странице.

1 голос
/ 27 сентября 2008

Это специфика Microsoft, не ожидайте увидеть ту же информацию в других ОС.
Обратите внимание, что вы получаете тот же формат при копировании фрагмента из IE.

Я не уверен, что вы подразумеваете под "операцией перетаскивания веб-страницы на веб-страницу". Бросить куда? Текстовая область?

Я не знаю C #, но в приложениях C / C ++ вы должны использовать OpenClipboard и соответствующие Win32 API для получения этой информации. В частности, GetClipboardData (CF_HTML) позволяет вам получить эту информацию (может быть получена также в виде обычного текста, например, или данные Unicode и т. Д.).

...