c# Clipboard returns null,但不能为空

c# Clipboard returns null, but can't be empty

我正在尝试获取 link,它是在单击时生成并粘贴到我的剪贴板中的。我尝试了所有我能找到的东西。但我总是收到 "null",即使当我在记事本中手动粘贴 link 时,我也明白了。

我用每个定义的数据格式尝试了这段代码,但一切都返回了 null。

string clipboardText = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

来自 MSDN:要使用此 class,请确保您的 Main 方法标有 STAThreadAttribute 属性。

示例:

using System.Windows.Forms;  // Need this for console app
namespace ClipboardTest
{
    class Program
    {
        // Without this attribute, will get null
        [STAThreadAttribute]
        static void Main(string[] args)
        {
            try
            {
                var clipboardText = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();
                Console.WriteLine(clipboardText);
            }
            catch (NullReferenceException ex1)
            {
                // Handle error
            }
            catch (System.Threading.ThreadStateException ex2)
            {
                // Will throw this when:
                // "The current thread is not in single-threaded apartment (STA) mode and the Application.MessageLoop property value is true."
                // Handle error
            }
            catch (System.Runtime.InteropServices.ExternalException ex3)
            {
                // Will throw this if clipboard in use
                // Handle error
            }
        }
    }
}