是否有可能发送WM_COPY消息复制文本的地方比其他剪贴板?(Is it possible to s

2019-08-03 05:39发布

这是该方法的定义:

  [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int msg, IntPtr lparam, IntPtr wparam);

这是调用SendMessage函数:

 //WM_COPY = 0x0301
 SendMessage(handle, WM_COPY, IntPtr.Zero, IntPtr.Zero);

这是怎么了检索数据:

string text = System.Windows.Forms.Clipboard.GetText();

我希望做同样的事情,只是我不希望数据被复制到剪贴板做。 是否可以将数据复制到内存中的其他部分? 如果是这样,怎么样?

Answer 1:

不,你不能控制什么,当接收到消息的其他应用也可以。 你得到什么行为目标窗口有该消息,并没有别的(除非你控制的目标也比你可以自己处理)。

WM_COPY只是一个消息(也实在是一个标准和意义特别的方式来处理) -一些窗口将处理它,有些则不会。 作为MSDN上定义WM_COPY将保存编辑控件文本。

应用程序发送消息WM_COPY向编辑控件或组合框到当前选择复制到CF_TEXT格式剪贴板。

如果要实现自己的应用程序来处理WM_COPY你可以不管你想要复制数据,也如果子类编辑控制它将使一个很大的意义,保持默认的行为...



Answer 2:

你可以把它写入一个文件,而如果剪贴板是不是一种选择。



文章来源: Is it possible to send a WM_COPY message that copies text somewhere other than the Clipboard?