了解剪贴板内容是否来自Internet Explorer

时间:2013-12-02 19:01:20

标签: winforms internet-explorer-9 internet-explorer-10 clipboard internet-explorer-11

我希望能够将带有功能超链接的剪贴板内容粘贴到我的Winform控件。为了实现这一点,我尝试检查剪贴板是否包含HTML而没有RTF,然后我可以相应地解析HTML内容。不幸的是,Internet Explorer在剪贴板内容中生成RTF和HTML,这样我就无法确定内容是否来自浏览器。例如微软的话就是做同样的事情,到目前为止我发现将办公产品与IE区别开来的唯一方法是检查命名空间xmlns:o“urn:schemas-microsoft-com:office:office”的HTML内容剪贴板。我不能简单地在所有情况下都使用HTML,因为我更喜欢RTF,或者只是来自浏览器以外的其他来源的unicode内容。

有没有办法确定剪贴板内容来自特定应用程序?在我的情况下从IE?到目前为止,我只使用了Clipboard.Contains(TextDataFormat.HTML)和Clipboard.GetDataObject()。GetFormats(),但我找不到任何其他内容。

1 个答案:

答案 0 :(得分:0)

您可以使用P / Invoke类使用http://pinvoke.net/default.aspx/user32/GetWindowText.html获取调用应用程序窗口标题。对于IE,标题是页面的名称,后缀为 - Microsoft Internet Explorer,此IE的默认标题。

这是如何使用GetWindowsText的示例代码 C# how to use WM_GETTEXT / GetWindowText API