0

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

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

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

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

4

2 回答 2

1

您应该能够改为使用GetText(TextDataFormat.CommaSeparatedValue)来确定剪贴板内容是否实际上是 CSV。这样一来,您根本不必关心 Excel 是否复制了它、Google Docs 或 OpenOffice Calc。

于 2017-11-21T16:57:01.453 回答
1

System.Windows.Clipboard 不跟踪源。

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

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

于 2017-11-21T16:59:59.770 回答