c# - 如何从 C# 中的剪贴板历史记录中获取所有数据的列表?

标签 c# clipboard clipboarddata

我想从剪贴板历史中获取所有数据的列表,但找不到枚举器方法。会不会有什么东西是我遗漏的,或者我还能通过什么其他方式做到这一点?我在剪贴板类中找不到枚举器方法。

var clip = Clipboard.GetDataObject();

foreach (var item in clip)
{
    MessageBox.Show(item);
}

最佳答案

我能够通过将 WinRT API 中的剪贴板类引用到我的 WPF 应用程序来获取剪贴板历史记录。

using Clipboard = Windows.ApplicationModel.DataTransfer.Clipboard;

Task.Run(async () => {
    var items = await Clipboard.GetHistoryItemsAsync();
    foreach (var item in items.Items)
    {
        string data = await item.Content.GetTextAsync();
        MessageBox.Show(data);
    }
});

我还必须将我的目标框架设置为带有 TFM 版本的 .NET 5.0,并且不需要任何 NuGet 包即可运行。您将需要 Microsoft.Windows.SDK.Contracts .NET 早期版本上的 NuGet 包。

<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>

关于c# - 如何从 C# 中的剪贴板历史记录中获取所有数据的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65385486/

相关文章:

windows-7 - 如何在 Windows 7 中增加剪贴板的大小?

C++ (风投) : How to detect whether Windows clipboard contains CF_TEXT data?

javascript - 通过插入地址栏中的 Javascript 命令将值复制到剪贴板

javascript - 如何检查列表框项目是否被选中?

c# - 显示对话框时出现 "Thread was being aborted"异常

javascript - 无法让 ZClip 工作

python 3.6 窗口 : retrieving the clipboard CF_HTML format

c# - 当循环变量的值是模式 LetterNumberNumber 的字符串时进行循环?

c# - 混合使用 Task 和 Dispatcher 会停止任务

windows-phone-7 - 可以以编程方式使用新的WP7剪切和粘贴功能吗?