2011-04-06 2 views
1

텍스트를 복사하여 Visual Studio에 붙여 넣어야하는 타사 응용 프로그램이 있습니다. 내가 복사 할 때, 같은 텍스트가 čenie을 vysved 및 Visual Studio 텍스트 편집기에 붙여, 나는 èenie을 vysved 얻을.클립 보드 내용의 인코딩을 결정하는 방법

다른 프로그램이 비 유니 코드 인코딩 텍스트를 클립 보드에 넣었 기 때문입니다. 그래서 주기적으로 다음과 같이 유니 코드로 텍스트를 클립 보드를 확인하고 변환하는 프로그램을 만들어 :

var originalText = Clipboard.GetText(TextDataFormat.Text); 
Clipboard.SetText(originalText, TextDataFormat.UnicodeText); 

이 잘 작동하지만 문제는 내가 결정합니까 나는 이미 있도록 클립 보드에서 유니 코드로 인코딩 된 텍스트를 어떻게 다시 변환하려고하지 않습니까?

나는 Clipboard.ContainsText(TextDataFormat.UnicodeText)이 작동한다고 생각했지만 항상 true를 반환했습니다.

답변

2

Clipboard.GetDataObject()을 사용하십시오.

GetFormats()으로 전화하면 IDataObject가 반환됩니다.

+0

글쎄, 여전히 형식 중에'UnicodeText'를 반환하지만, 필자가 원하는대로 사용할 수있는'OEMText'와'Locale'도 반환합니다. 감사! –

0

참고 : MSDN 설명서의 참고 사항 : 클립 보드 클래스는 STA (단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 Main 메소드가 STAThreadAttribute 속성으로 표시되어 있는지 확인하십시오.

+0

wpf 앱에서 사용하고 있습니다. –