我不是在.Net中编码,而是使用PresentationCore程序集中的System.Windows.Clipboard
访问系统剪贴板以粘贴复制到Excel中的信息。
当Excel复制到剪贴板时,我可以使用System`Windows`Clipboard`GetText[]
将其检索为文本。本文遵循TSV文件格式,我可以在我的代码中解析和使用(Wolfram语言)。
有没有办法可以查询System.Windows.Clipboard
以确定Excel是否是将当前数据粘贴到其中的应用程序?
我想在我的代码中限制粘贴操作,以仅评估剪贴板上的数据是否来自Excel。我查看了在线MSDN文档页面,但没有注意到提供此信息的方法。
答案 0 :(得分:1)
您应该能够使用GetText(TextDataFormat.CommaSeparatedValue)
来确定剪贴板内容是否实际为CSV。这样,您无需关心Excel是复制它,还是Google Docs或OpenOffice Calc。
答案 1 :(得分:1)
System.Windows.Clipboard不会跟踪来源。
您可以使用Form.ActiveControl来查看Excel是否处于活动状态,然后从上下文菜单中侦听CTRL + C命令或副本。因此,您不是在寻找复制数据的来源,而是在观看Excel以查看是否正在复制任何数据。
如果您不关心源并只想要TSV,您可以解析复制的数据以查看它是否是TSV并正确处理。