C# 에서 clipboard 사용할 때는 System.Windows.Forms 사용한다.

 

그런데 그냥 하다 보니 단순하게 Clipboard 를 사용하면 Thread 관련 에러가 난다.

 

해결 방법을 찾아보니 아래 주소에 그 해결 방법이 있었다.

 

http://stackoverflow.com/questions/3546016/how-to-copy-data-to-clipboard-in-c-sharp

 

해결 방법은 간단하다. [STAThreadAttribute] 를 main 위에 넣어 주면 된다.

 

샘플 코드는 아래와 같다.

 

using System;
using System.Windows.Forms;


namespace Test
{
    class Program
    {
        [STAThreadAttribute]
        public static void Main(string[] args)
        {            
            string a = Clipboard.GetText();


            System.Console.WriteLine(a);
            
            Clipboard.SetText("Hello, clipboard");        
            
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

 

위 코드를 실행해보면 Clipboard 의 text 값을 a 라는 변수에 넣게 되고 "Hello, clipboard" 라는 text 값을 Clipboard 에 넣게 된다.

 

위 코드 실행 후에 아무 에디터에 CTRL+V 를 통해 붙여 넣기를 해보면 Hello, clipboard 라는 글자가 들어감을 확인 할 수 있다.


+ Recent posts