我在程序中定义了一个timer来循环获取剪切板的内容
private void timer_listen_Tick(object sender, EventArgs e)
{
if (System.Windows.Clipboard.ContainsText())
{
System.Windows.IDataObject obj = System.Windows.Clipboard.GetDataObject();
if (obj != null)
{
string text = obj.GetData(System.Windows.DataFormats.Text).ToString();
}
}
}
然后会出现莫名其妙的错误2个
1.
托管调试助手“DisconnectedContext”在“...........................”中检测到问题。
其他信息: 针对此 RuntimeCallableWrapper 向 COM 上下文 0x308e1f88 的转换失败,错误如下: 对象没有连接到服务器 (异常来自 HRESULT:0x800401FD (CO_E_OBJNOTCONNECTED))。原因通常是创建此 RuntimeCallableWrapper 的 COM 上下文 0x308e1f88 已断开连接,或者该上下文正忙于执行其他操作,无法处理该上下文转换。将不会有代理服务于该 COM 组件上的请求,调用将直接转向该 COM 组件。这可能会导致损坏或数据丢失。要避免此问题,请确保在应用程序全部完成 RuntimeCallableWrapper (表示其内部的 COM 组件)之前,所有 COM 上下文/单元/线程都保持活动状态并可用于上下文转换。
2.
“System.Runtime.InteropServices.COMException”类型的未经处理的异常在 PresentationCore.dll 中发生
其他信息: OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN))