剪贴板更改事件代码很复杂且无法正常工作
Clipboard change event code is complicated and isn't working
我想在内容更改时在文本框中显示剪贴板,我知道我需要使用来自 "user32.dll" 的导入,但我从未使用过这些类型的导入,它们有点令人困惑我。我检查了 this link and this link 以获得有关剪贴板更改事件的一些想法,所以这是我的问题:
1。即使我复制并粘贴了上面 link 中的代码,它们仍然不起作用:
WndProc 的错误是:'object' does not contain a definition for 'WndProc'
2。我想了解更多关于 user32.dll 和 kernel32.dll 导入的信息,如果可能的话,请提供一些关于它们的信息,或者提供一些解释这些基础知识的资源。
谢谢
要在表单中监控剪贴板,您应该先创建表单,然后使用这些代码,例如:
public class Form1: Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
public const int WM_DRAWCLIPBOARD = 0x0308;
private void Form1_Load(object sender, EventArgs e)
{
SetClipboardViewer(this.Handle);
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg != WM_DRAWCLIPBOARD)
return;
//Code To handle Clipboard change event
}
}
别忘了加上using System.Runtime.InteropServices;
我想在内容更改时在文本框中显示剪贴板,我知道我需要使用来自 "user32.dll" 的导入,但我从未使用过这些类型的导入,它们有点令人困惑我。我检查了 this link and this link 以获得有关剪贴板更改事件的一些想法,所以这是我的问题:
1。即使我复制并粘贴了上面 link 中的代码,它们仍然不起作用:
2。我想了解更多关于 user32.dll 和 kernel32.dll 导入的信息,如果可能的话,请提供一些关于它们的信息,或者提供一些解释这些基础知识的资源。 谢谢
要在表单中监控剪贴板,您应该先创建表单,然后使用这些代码,例如:
public class Form1: Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
public const int WM_DRAWCLIPBOARD = 0x0308;
private void Form1_Load(object sender, EventArgs e)
{
SetClipboardViewer(this.Handle);
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg != WM_DRAWCLIPBOARD)
return;
//Code To handle Clipboard change event
}
}
别忘了加上using System.Runtime.InteropServices;