我有第三方应用程序,我需要从中复制文本并将其粘贴到visual studio中。但是,当我复制 vysved č enie 等文本并粘贴到Visual Studio文本编辑器中时,我得到< EM> vysved 的 è ENIE
我打赌这是因为其他程序将非unicode编码的文本放入剪贴板。所以我制作了一个程序来定期检查剪贴板并将文本转换为unicode,如下所示:
var originalText = Clipboard.GetText(TextDataFormat.Text);
Clipboard.SetText(originalText, TextDataFormat.UnicodeText);
这很好用,但问题是如何确定我已经在剪贴板中有一个unicode编码的文本,这样我就不会再尝试转换它了?
我认为Clipboard.ContainsText(TextDataFormat.UnicodeText)
会起作用,但这总是正确的。
答案 0 :(得分:2)
然后,您可以在IDataObject
返回时致电GetFormats()
。
答案 1 :(得分:0)
另请注意:来自MSDN文档的说明: Clipboard类只能在设置为单线程单元(STA)模式的线程中使用。要使用此类,请确保使用STAThreadAttribute属性标记Main方法。