我想将更改保存在剪贴板中。所以我注册了我的应用程序以获取剪贴板发生的所有更改。
使用
[DllImport("User32.dll")]
protected static extern bool AddClipboardFormatListener(int hwnd);
进而
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_CLIPBOARDUPDATE:
OnClipboardChanged();
break;
...
}
}
private void OnClipboardChanged()
{
if (Clipboard.ContainsText())
{
MessageBox.Show(Clipboard.GetText().ToString());
}
}
问题是:从 Visual Studio 或 firefox 等应用程序复制文本时,有时会调用 OnClipboardChanged() 函数两次或 3 次。
我认为那些应用程序会将数据以不同的格式写入剪贴板,这就是该函数被多次调用的原因。但是我将如何防止保存相同的数据,因为 OnClipboardChanged() 被多次调用?