System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr SetClipboardViewer(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr ChangeClipboardChain(IntPtr hwnd, IntPtr hWndNext);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam); const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x30D;
const int WM_GETMINMAXINFO = 0x24;
IntPtr NextClipHwnd;private void Form1_Load(object sender, EventArgs e)
{
NextClipHwnd = SetClipboardViewer(this.Handle);
} private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
ChangeClipboardChain(this.Handle, NextClipHwnd);
SendMessage(NextClipHwnd, WM_CHANGECBCHAIN, this.Handle, NextClipHwnd);
}
protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case WM_GETMINMAXINFO:
SendMessage(NextClipHwnd, m.Msg, m.WParam, m.LParam);
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text) | iData.GetDataPresent(DataFormats.OemText))
{
label1.Text = (String)iData.GetData(DataFormats.Text); }
break;
default:
base.WndProc(ref m);
break;
}
}
private static extern IntPtr SetClipboardViewer(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr ChangeClipboardChain(IntPtr hwnd, IntPtr hWndNext);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam); const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x30D;
const int WM_GETMINMAXINFO = 0x24;
IntPtr NextClipHwnd;private void Form1_Load(object sender, EventArgs e)
{
NextClipHwnd = SetClipboardViewer(this.Handle);
} private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
ChangeClipboardChain(this.Handle, NextClipHwnd);
SendMessage(NextClipHwnd, WM_CHANGECBCHAIN, this.Handle, NextClipHwnd);
}
protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case WM_GETMINMAXINFO:
SendMessage(NextClipHwnd, m.Msg, m.WParam, m.LParam);
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text) | iData.GetDataPresent(DataFormats.OemText))
{
label1.Text = (String)iData.GetData(DataFormats.Text); }
break;
default:
base.WndProc(ref m);
break;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货