【发布时间】:2013-02-09 06:15:33
【问题描述】:
我一直在浏览,但不清楚如何简单地发送 Ctrl+x 或 Ctrl+c 命令 复制/剪切数据(字符串),但我很确定这是所需的 pInvoke。快手,有人吗?
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
可能伴随着这个: [DllImport("user32.dll")] static extern IntPtr SetClipboardData(uint uFormat, IntPtr hMem);
不知道如何正确使用这两种方法,请帮忙。
IntPtr nextClipboardAppWindow;
public frmMain()
{
nextClipboardAppWindow = (IntPtr)SetClipboardViewer((int)this.Handle);
}
protected override void WndProc(ref System.Windows.Forms.Message m)
{
// defined in winuser.h
const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x030D;
switch (m.Msg)
{
case WM_DRAWCLIPBOARD:
//DisplayClipboardData();
SendMessage(nextClipboardAppWindow, m.Msg, m.WParam,
m.LParam);
break;
case WM_CHANGECBCHAIN:
if (m.WParam == nextClipboardAppWindow)
nextClipboardAppWindow = m.LParam;
else
SendMessage(nextClipboardAppWindow, m.Msg, m.WParam,
m.LParam);
break;
default:
base.WndProc(ref m);
break;
}
}
【问题讨论】:
-
您的实际问题是什么?
-
谁,what,@where,____when____,“为什么”,但主要是:如何?...
-
如果您只是想要答案,没有人可以帮助您。您在提问时需要非常具体。 -1 。
-
这里有管理员看到这个吗?他们可以为我笑一次吗?
标签: c#