如何读取网页或者C#中的原始(CF_HTML)剪贴板数据?

时间:2020-03-06 14:48:19  来源:igfitidea点击:

如果我将某个网页的选择从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系统上是否相同?

在网页到网页的拖放操作中,有什么方法可以访问这种详细信息(而不仅仅是普通剪辑片段)? CWinForms桌面应用程序怎么办?

解决方案

它是特定于Microsoft的,不要期望在其他操作系统中看到相同的信息。
请注意,从IE复制片段时,将获得相同的格式。

我不确定"网页到网页的拖放操作"是什么意思。要掉到哪里?一个文本区域?

我不知道C#,但是在C / C ++应用程序中,我们必须使用OpenClipboard和相关的Win32 API来获取此信息。特别是,GetClipboardData(CF_HTML)允许我们获取此信息(例如,也可以以纯文本或者Unicode数据等形式获取)。

WinForms应用程序可以使用Clipboard.GetText来获取它。但是,我认为没有办法在网页中做到这一点。