如何检查粘贴到System.Windows.Clipboard的应用程序?

时间:2017-11-21 16:51:40

标签: .net excel clipboard clipboarddata

我不是在.Net中编码,而是使用PresentationCore程序集中的System.Windows.Clipboard访问系统剪贴板以粘贴复制到Excel中的信息。

当Excel复制到剪贴板时,我可以使用System`Windows`Clipboard`GetText[]将其检索为文本。本文遵循TSV文件格式,我可以在我的代码中解析和使用(Wolfram语言)。

有没有办法可以查询System.Windows.Clipboard以确定Excel是否是将当前数据粘贴到其中的应用程序?

我想在我的代码中限制粘贴操作,以仅评估剪贴板上的数据是否来自Excel。我查看了在线MSDN文档页面,但没有注意到提供此信息的方法。

2 个答案:

答案 0 :(得分:1)

您应该能够使用GetText(TextDataFormat.CommaSeparatedValue)来确定剪贴板内容是否实际为CSV。这样,您无需关心Excel是复制它,还是Google Docs或OpenOffice Calc。

答案 1 :(得分:1)

System.Windows.Clipboard不会跟踪来源。

您可以使用Form.ActiveControl来查看Excel是否处于活动状态,然后从上下文菜单中侦听CTRL + C命令或副本。因此,您不是在寻找复制数据的来源,而是在观看Excel以查看是否正在复制任何数据。

如果您不关心源并只想要TSV,您可以解析复制的数据以查看它是否是TSV并正确处理。