2011-04-06 85 views
1

我有第三方应用程序,我需要从中复制文本并将其粘贴到Visual Studio中。然而,当我复制像文本vysvedčENIE并粘贴到Visual Studio的文本编辑器,我得到vysvedèENIE如何确定剪贴板内容的编码

我敢打赌,这是由于其他程序将非Unicode编码文本放入剪贴板。所以我做了一个程序来定期检查剪贴板,然后将文本转换成Unicode是这样的:

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

这工作得很好,但问题是我怎么确定我已经在剪贴板中,这样一个Unicode编码的文本我不试图再次转换它?

我认为Clipboard.ContainsText(TextDataFormat.UnicodeText)会工作,但这总是返回true。

回答

2

使用Clipboard.GetDataObject()

然后你可以拨打GetFormats()关于IDataObject返回。

+0

那么,这仍然返回'UnicodeText'的格式,但也'OEMText'和'区域设置',我可以使用我需要什么。谢谢! – 2011-04-06 13:06:50

0

另请注意:MSDN文档中的注意事项: 剪贴板类只能在设置为单线程单元(STA)模式的线程中使用。要使用这个类,请确保您的Main方法标有STAThreadAttribute特性。

+0

我在wpf应用程序中使用它。 – 2011-04-06 13:08:09

相关问题