win10监听剪切板变化
一、第一步导入api
#region [DllImport("user32.dll")] public static extern bool AddClipboardFormatListener(IntPtr hwnd); [DllImport("user32.dll")] public static extern bool RemoveClipboardFormatListener(IntPtr hwnd); private static int WM_CLIPBOARDUPDATE = 0x031D; #endregion
二、窗体初始化的时候,开启剪切板切换
public Form1() { InitializeComponent(); AddClipboardFormatListener(this.Handle); }
三、窗体关闭时,移除监听
protected override void OnClosing(CancelEventArgs e) { RemoveClipboardFormatListener(this.Handle); base.OnClosing(e); }
三、重写窗体的WndProc方法处理监听
protected override void WndProc(ref Message m) { if (m.Msg == WM_CLIPBOARDUPDATE) { UpdateClipValueList(); } else { base.DefWndProc(ref m); } } private void UpdateClipValueList() { //显示剪贴板中的文本信息 if (Clipboard.ContainsText()) { label1.Text = Clipboard.GetText(); } //显示剪贴板中的图片信息 if (Clipboard.ContainsImage()) { pictureBox1.Image = Clipboard.GetImage(); pictureBox1.Update(); } }
运行结果: