简介

这是一个简单的WinForm组件和WinForm程序,它可以实时的监控用户对Windows剪贴板的操作。当用户复制/剪切时,它会自动记录用户复制/剪切的内容。这个程序使用组件来完成,所以你可以很方便的在自己的程序中使用剪贴板监控组件。当然,目前这个组件很小很简单,功能还不完善。
使用Win32 API
我们使用Windows API 来注册我们的程序,使得操作系统会在用户复制/剪切时通知我们的程序。需要使用一下几个函数:
·SetClipboardViewer() - 使一个窗口加入到Windows剪贴板监听者链中。这样在用户扶智/剪切时,Windows会给我们的窗口发送一个WM_DRAWCLIPBOARD消息。而且,当有其他程序加入/退出这个监听者链表时,Windows会给我们的窗口发送一个WM_CHANGECBCHAIN 消息。注意:当自己的窗口接收到这两个消息时,应该使用SendMessage函数来把消息传送给下一个监听者。
·ChangeClipboardChain() - 使一个窗口退出Windows剪贴板监听者链。注意我们的程序必须调用ChangeClipboardChain函数来退出监听者链表。
·SendMessage() - 发送消息到其他窗口,以便于Windows剪贴板监听者链表中消息的传递。
重写WndProc方法
重写自己的WndProc方法,以接收Windows消息。当接收到WM_DRAWCLIPBOARD消息时,首先要记得把消息传送给下一个监听者。然后就可以处理自己的程序,这里我们只是触发一个简单的事件,把事情交给更高一层来处理。当接收WM_CHANGECBCHAIN时,需要改变监听者链表。并且记着还要发送消息给下一个监听者。