0
我已經按照下面的標準建議的方式編輯WndProc創建了剪貼板查看器。剪貼板查看器:WM_DRAWCLIPBOARD有時會多次觸發
case WM_DRAWCLIPBOARD:
Logger.Main.LogMessage("Draw Clipboard event");
if (OnClipboardChanged != null) {
OnClipboardChanged(this, new ViewChangeEventArgs());
}
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
break;
case WM_CHANGECBCHAIN:
Logger.Main.LogMessage("Change CB Chain");
if (m.WParam == NextClipboardViewer) {
NextClipboardViewer = m.LParam;
}
else {
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
}
break;
我的應用程序只需要在剪貼板中有新數據可用時通知。事情工作正常,消息正確檢測。
有時(並且這很難重現)我收到大量WM_DRAWCLIPBOARD生成的事件,它們使用相同的時間戳生成,並與剪貼板中的相同數據關聯。 任何可能導致這種情況的想法?有關如何獲取有關這些消息的更多信息的任何建議?
謝謝。
「It Happens」 - F. Gump – 2013-02-18 00:11:41
感謝您的電子信息克里斯。你通常如何管理它。你檢查收到的消息是否非常接近,而你忽略它們? – 2013-02-18 07:29:27
是的。通常你想做的事情只是對最後一件事情做出反應。這通常包括在所有事情都安靜了500毫秒左右之後自己回來。 – 2013-02-18 21:57:59