从剪贴板中读取文本

时间:2016-03-08 12:30:03

标签: c# unity3d

我正在尝试在Unity中的C#中读取剪贴板中的文本,然后将其设置为变量。

我看过这篇文章然而它似乎并没有在Unity中发挥作用: https://msdn.microsoft.com/en-us/library/kz40084e(v=vs.110).aspx

我只想阅读纯文本。没有图像或任何东西。我还发现了一些其他文章,但Unity中没有任何代码可用。

1 个答案:

答案 0 :(得分:12)

我做了一个快速示例,展示了如何使用Clipboard命名空间中的System.Windows.Forms类。事实证明,该方法需要[STAThread]方法属性才能工作。我不知道是否可以在Unity3D C#脚本中使用。

[STAThread]
static void Main(string[] args)
{
    if (Clipboard.ContainsText(TextDataFormat.Text))
    {
        string clipboardText = Clipboard.GetText(TextDataFormat.Text);
        // Do whatever you need to do with clipboardText
    }
}

要详细了解该属性的用途,请查看此问题(更重要的是,答案):What does [STAThread] do?

编辑:

我做了一些挖掘,看起来Unity3D有一个系统剪贴板的包装器。我还没有尝试过,但看起来它应该适用于不同的操作系统,而不仅仅适用于Windows:GUIUtility.systemCopyBuffer