下面是我如何将文本字符串放入Windows剪贴板的代码。我正在寻找一个命令来立即关闭剪贴板资源,以便它不再被应用程序锁定。你知道如何在C#中明确地关闭剪贴板资源吗?
这是代码
String s = "Hello World";
Thread staThread3 = new Thread
(
delegate()
{
try { new SetClipboardHelper(DataFormats.Text, s).Go();}
catch (Exception ex) { /* Exception Handling */ }
}
);
staThread3.SetApartmentState(ApartmentState.STA);
staThread3.Start();
staThread3.Join();
// Here I would like to close the clipboard
// ????
这是SetClipboardHelper类的代码
class SetClipboardHelper : StaHelper
{
readonly string _format;
readonly object _data;
public SetClipboardHelper(string format, object data)
{
_format = format;
_data = data;
}
protected override void Work()
{
var obj = new System.Windows.Forms.DataObject(
_format,
_data
);
Clipboard.SetDataObject(obj, true);
}
}
答案 0 :(得分:0)
如果您通过调用OpenClipboard()方法“锁定”(阻止其他应用修改)剪贴板,那么您可以(并且您应该,因为它阻止其他应用程序使用它)将其关闭{{3} }。
CloseClipboard()是复制到剪贴板时应该坚持的序列。