我想保存剪贴板中的更改。因此,我注册了我的应用程序以获取发生在剪贴板上的所有更改。
问题是: 当从 Visual Studio 或Firefox之类的应用程序复制文本时,OnClipboardChanged() 函数有时会被调用两次或三次。
我认为这些应用程序可能会使用不同的格式将数据写入剪贴板,这就是为什么该函数会被调用多次的原因。 但是,我该如何防止重复保存相同的数据,因为 OnClipboardChanged() 被多次调用?
使用
[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() 函数有时会被调用两次或三次。
我认为这些应用程序可能会使用不同的格式将数据写入剪贴板,这就是为什么该函数会被调用多次的原因。 但是,我该如何防止重复保存相同的数据,因为 OnClipboardChanged() 被多次调用?