【问题标题】:How to copy multiple items to clipboard history in c#?如何在 C# 中将多个项目复制到剪贴板历史记录?
【发布时间】:2021-04-10 12:33:10
【问题描述】:

我正在使用来自 Win API (Windows.ApplicationModel.DataTransfer.Clipboard) 的剪贴板类。当我尝试将多个项目一一复制到剪贴板历史记录时,它会被最近的项目覆盖。我想将我复制的每个项目存储到剪贴板历史记录中。我的剪贴板历史记录已启用,我尝试使用剪贴板中的所有设置方法,包括来自 (System.Windows.Clipboard) 的 SetText 方法,所有这些方法都会覆盖而不是添加到历史记录中。

    private void UpdateClipboardOnProfileDropDownClosed(object sender, EventArgs e)
    {
        Clipboard.ClearHistory();
        using (var db = new LiteDatabase(Path.Combine(documents, "Auto Paste Clipboard", "data.db")))
        {
            var collection = db.GetCollection<ClipboardProfile>("clipboard");

            var clipboard = collection.FindOne(x => x.Profile == ProfileComboBox.Text);

            clipboard.Clipboard.Reverse();

            MessageBox.Show(clipboard.Clipboard.Count.ToString());
            foreach (var item in clipboard.Clipboard)
            {
                DataPackage data = new DataPackage
                {
                    RequestedOperation = DataPackageOperation.Copy
                };

                data.SetText(item);                          
                Clipboard.SetContent(data);
            }                                
        }
    }

【问题讨论】:

    标签: c# .net-core uwp windows-runtime clipboarddata


    【解决方案1】:

    剪贴板历史记录需要一些延迟才能保存当前项目。因此,您可以尝试在添加项目时添加延迟。

    请检查以下代码作为示例:

    private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        if(Clipboard.IsHistoryEnabled())
        {
            List<string> lists=new List<string>{ "1","2","3","4","5","6","7","8","9","10"}; 
            foreach(var item in lists)
            {
                DataPackage dataPackage = new DataPackage();
                dataPackage.SetText(item);
                Clipboard.SetContent(dataPackage);
                await Task.Delay(250);
            }
        }
    }
    

    注意,如果这些项目没有全部添加,可以增加延迟时间。

    【讨论】:

    • 谢谢。它同样帮助我复制多个项目,使用 python 的 pyperclip 模块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多