无法将html格式往返剪贴板

Posted

技术标签:

【中文标题】无法将html格式往返剪贴板【英文标题】:Can not round trip html format to clipboard 【发布时间】:2010-09-25 16:58:09 【问题描述】:

我想编写 html 格式,但我什至无法获得它的简单 MSDN 示例。

http://msdn.microsoft.com/en-us/library/tbfb3z56.aspx

此控制台应用程序(剪贴板往返程序)是否适用于任何人?

使用系统; 使用 System.Windows; //需要添加一个PresentationCore或者System.Windows.Forms引用 类程序 [STA线程] 静态无效主要(字符串[] args) Console.WriteLine("从浏览器复制少量文本,然后回车。"); Console.ReadLine(); var text = Clipboard.GetText(); Console.WriteLine(); Console.WriteLine("--->剪贴板作为文本:"); Console.WriteLine(文本); Console.WriteLine(); Console.WriteLine("--->用相同的 CF_HTML 数据重写剪贴板。"); //***这里是问题代码*** var html = Clipboard.GetText(TextDataFormat.Html); 剪贴板.清除(); Clipboard.SetText(html, TextDataFormat.Html); var text2 = Clipboard.GetText(); Console.WriteLine(); Console.WriteLine("--->剪贴板作为文本:"); Console.WriteLine(text2); var isSameText = ( text == text2 ); Console.WriteLine(); Console.WriteLine( isSameText ? "成功" : "失败" ); Console.WriteLine(); Console.WriteLine("按回车键退出。"); Console.ReadLine();

【问题讨论】:

【参考方案1】:

我可以重现它不起作用...var text2 = Clipboard.GetText(); 每次都返回 ""...

(编辑) 快速搜索会产生this,这似乎是主题。

【讨论】:

感谢您的测试。我也试过你的参考代码。我也无法让它工作。【参考方案2】:

当您将数据从浏览器复制到剪贴板时,它会将相同的数据以多种格式(包括文本和 HTML)放到剪贴板上。因此,您可以以文本或 HTML 格式读取数据。但是,当您在这里调用 SetText 时,您只是传递 HTML 格式,因此当您使用常规 GetText 时,剪贴板上没有文本版本,您会返回 null。

您可以使用 IDataObject 一次将多种格式(即文本和 HTML)放入剪贴板,但在将数据放入剪贴板之前,您必须自己进行格式之间的转换。有一个如何使用IDataObjecthere的例子。

【讨论】:

以上是关于无法将html格式往返剪贴板的主要内容,如果未能解决你的问题,请参考以下文章

ClipBord 复制 Html winform

利用Python进行数据分析_Pandas_数据加载存储与文件格式

JavaScript在粘贴事件上获取剪贴板数据(跨浏览器)

无法将文本从 WKWebview 复制到剪贴板

Delphi的windows剪切板操作函数

VBA 中的 HTML - 无法将单元格格式化为数字/货币