当前位置:
首页 > Python基础教程 >
-
C#教程之C# 使用WinApi操作剪切板Clipboard(2)
WndProc(ref Message m)
{
if (m.Msg == 0x031D && Onice)
{var Temp = ClipboardControl.GetText(ClipboardFormat.CF_UNICODETEXT);
if (!string.IsNullOrEmpty(Temp))
{
ClipboardControl.SetText(Temp);
Onice = false;
}
}
else if (!Onice)
{
Onice = true;
}
else
{
base.WndProc(ref m);
}
}
private bool Onice = true;
首先WndProc如果是Form类下面一个专门用来接收系统发送过来的消息的方法
然后关于m.Msg == 0x031D的0x031D在WinAPI定义上的意义是WM_CLIPBOARDUPDATE ,也就是剪切板更新事件,这个通过查找MSDN能够找到
下面没有特别奇怪的函数,就是有一点需要注意,我们这里设置了剪切板数据,相当于进行了一次更新,所以会在这一瞬间再次产生剪切板更新事件,然后又会通知这个方法,然后就会形成死循环,我在这里用了一个布尔判断来通过布尔状态决定是否截取剪切板,不只有有没有更好的办法来实现
以上