我试图获得一个链接,该链接是单击生成的,并粘贴到剪贴板中。我尽我所能找到一切。但是,即使将链接手动粘贴到记事本中,也可以接收到“ null”,但是我总是收到“ null”。
我尝试使用每种定义的Dataformat编写此代码,但是所有内容都返回null。
string clipboardText = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();
答案 0 :(得分:1)
来自MSDN:要使用此类,请确保您的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
}
}
}
}