【发布时间】:2013-12-02 19:01:19
【问题描述】:
我希望能够将带有功能超链接的剪贴板内容粘贴到我的 Winform 控件。为了使它工作,我尝试检查剪贴板是否包含 HTML 并且没有 RTF,然后我可以相应地解析 HTML 内容。不幸的是,Internet Explorer 在剪贴板内容中生成 RTF 和 HTML,这样我就无法真正判断内容来自浏览器。例如,Microsoft word 做同样的事情,到目前为止,我发现区分办公产品与 IE 的唯一方法是在 HTML 内容中检查命名空间 xmlns:o"urn:schemas-microsoft-com:office:office"剪贴板。我不能在所有情况下都简单地使用 HTML,因为我更喜欢 RTF 或者只是来自浏览器以外的其他来源的 unicode 内容。
有没有办法确定剪贴板内容来自特定应用程序?在我的情况下,来自 IE?到目前为止,我只使用了 Clipboard.Contains(TextDataFormat.HTML) 和 Clipboard.GetDataObject().GetFormats() 但我找不到其他任何东西。
【问题讨论】:
-
如果剪贴板来自 IE 驱动的程序怎么办?或者某些程序选择生成您无法理解的其他 HTML 内容?更好地向用户描述错误。
-
请注意,检查数据中的内容(即 XML 的架构)会有效地触发“粘贴”操作,并且会产生意想不到的后果,例如触发延迟渲染,如果使用 RemDesk 或其他方式通过网络完成复制/粘贴。要记住的事情。
标签: winforms internet-explorer-9 internet-explorer-10 clipboard internet-explorer-11