在做C#开发中,有一个需求是写一个托盘程序用于监听剪贴板的数据复制。
我遇到的问题是在正常情况下可以监听clipboard的数据变化,但是当我缩小为托盘程序的时候,托盘程序就无法监听剪贴板的数据变化了,再次双击托盘图标,还是照样的不能
实现监听板的监听功能。
原因分析:
在C#开发中,我使用的是
<code> [DllImport("user32")]
private extern static IntPtr SetClipboardViewer(
IntPtr hWnd);
[DllImport("user32")]
private extern static int ChangeClipboardChain(
IntPtr hWnd,
IntPtr hWndNext);
[DllImport("user32", CharSet = CharSet.Auto)]
private extern static int SendMessage(
IntPtr hWnd,
int wMsg,
IntPtr wParam,
IntPtr lParam);
</code>这三个方法来实现的剪贴板的复制功能。Form默认正常显示,点击关闭按钮后,缩小为托盘程序,以便于在后台监听
<code> protected override void WndProc(ref Message e)</code