2016-03-08 5 views
1

Я пытаюсь прочитать текст в буфере обмена в C# в Unity, а затем установить его в переменную.Прочитать текст из буфера обмена

Я видел эту статью, однако это не похоже на работу в Unity: https://msdn.microsoft.com/en-us/library/kz40084e(v=vs.110).aspx

Я просто хочу, чтобы иметь возможность читать обычный текст. Нет изображений или что-то еще. Я также нашел несколько других статей об этом, однако ни один из кодов не работает в Unity.

+1

Можете ли вы показать код на вашем Unity3D C# скрипте? Кроме того, когда именно вы хотите получить доступ к данным буфера обмена? –

+0

Какой код вы используете для доступа к данным? Почему он не работает? ... – TheLethalCoder

+0

Я хочу получить к нему доступ в начале загрузки программы. – Andrew

ответ

4

Я сделал быстрый пример, чтобы показать, как использовать класс 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?

EDIT:

Я сделал немного и, похоже, Unity3D имеет оболочку для системного буфера обмена. Я еще не пробовал, но похоже, что он должен работать в разных операционных системах, а не только для Windows: GUIUtility.systemCopyBuffer

+0

Невозможно использовать это в Unity3D. Даже он может импортировать требуемую DLL, он не будет работать на других платформах. Он будет работать только в Windows. – Programmer

+1

@Programmer Это правда. Я нашел ссылку на документы Unity3D о 'EditorGUIUtility.systemCopyBuffer', которая выглядит так, как будто она может использоваться для доступа к буферу OS. Я отредактировал свой ответ, чтобы включить ссылку, но я еще не пробовал себя. –

+1

+1. EditorGUIUtility.systemCopyBuffer предназначен только для редактора Unity. GUIUtility.systemCopyBuffer - это правильный класс/метод. Обновите свой ответ. Это будет работать для всей платформы, кроме Web/WebGL. – Programmer

Смежные вопросы