是否可以通过C#访问剪贴板更改或更新的事件?
我认为您必须使用一些p / invoke:
[DllImport("User32.dll", CharSet=CharSet.Auto)] public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
请参阅本文,了解如何在C#中设置剪贴板监视器
基本上,您使用以下方式将应用程序注册为剪贴板查看器
_ClipboardViewerNext = SetClipboardViewer(this.Handle);
然后您将收到该WM_DRAWCLIPBOARD消息,您可以通过覆盖WndProc以下内容进行处理:
WM_DRAWCLIPBOARD
WndProc
protected override void WndProc(ref Message m) { switch ((Win32.Msgs)m.Msg) { case Win32.Msgs.WM_DRAWCLIPBOARD: // Handle clipboard changed break; // ... } }
(还有很多事情要做;沿着剪贴板链传递信息并取消注册视图,但是您可以从本文中获取信息)