如何在C#中关闭剪贴板资源?
下面是我如何将文本字符串放入Windows剪贴板的代码。我正在寻找一个命令,关闭剪贴板资源后立即,使它不再被锁定的应用程序。你知道如何在C#中明确地关闭剪贴板资源吗 这是密码如何在C#中关闭剪贴板资源?,c#,clipboard,concurrent-programming,clipboard-interaction,C#,Clipboard,Concurrent Programming,Clipboard Interaction,下面是我如何将文本字符串放入Windows剪贴板的代码。我正在寻找一个命令,关闭剪贴板资源后立即,使它不再被锁定的应用程序。你知道如何在C#中明确地关闭剪贴板资源吗 这是密码 String s = "Hello World"; Thread staThread3 = new Thread ( delegate() { try { new SetClipboardHelper(DataFormats.Text, s).Go();} catch (Ex
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);
}
}
如果您通过调用方法“锁定”(阻止其他应用程序修改)剪贴板,那么您可以(而且您应该,因为它阻止其他应用程序使用它)使用关闭它
这是复制到剪贴板时应遵循的顺序 这样应用程序就不会再锁定它了-这意味着什么?您可能想添加您从中获得的类,因为它们不是.NET Framework的一部分。我假设某个应用程序在另一个应用程序使用它之前将剪贴板资源的使用锁定了一段时间。@nvoigt对的我已经从stackoverflow社区得到了很多帮助。这是为人们编码的最佳场所:-)你提供了指向C API的链接,而不是C。