Skip to main content
 首页 » 编程设计

c#之如何释放被另一个进程锁定的剪贴板

2024年01月11日36leader

我有一个问题,我正在尝试从剪贴板中检索对象,修改它并将其添加回来......

我一次又一次地得到

requested operation on clipboard could not be performed

看起来剪贴板被某个进程锁定了,我该如何释放剪贴板?

请您参考如下方法:

你不能释放它。如果另一个应用程序打开了剪贴板,您必须等到它关闭它。如果最近(在过去的一两秒内)修改了剪贴板,您应该预料到其他应用程序将打开它进行检查,因此如果您希望自己能够立即打开它,应该预料到会失败。您需要使用 try..except 处理程序以及 sleep() 和“3 次罢工”循环。
伪代码:

Success := false; 
Attempts := 0; 
While (Attempts < 3) and (Success = false) do 
begin 
  Try 
    inc(Attempts); 
    OpenClipboard; 
    Success := true; 
  except 
    sleep(attempts * 1000); 
  end 
end;