在C#richtextbox中调用Win32 API SendMessage来复制所选文本会返回少一个字符

时间:2009-12-07 09:19:47

标签: c# richtextbox

我正在尝试使用win32 API SendMessage复制活动窗口中的选定文本 如下

[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, out int wParam, out int lParam);
int start,next;
SendMessage(activeWindowHandle, 0xB0, out start, out next);

返回所选文本的开始和结束字符位置。 这在记事本或任何System.Windows.Forms.TextBox中都可以正常工作。 但是为System.Windows.Forms.RichTextBox调用它会返回少一个字符。 谁知道为什么?以及如何解决这个问题。

1 个答案:

答案 0 :(得分:-1)

SendMessage实际应该是

public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

wParam和lParam实际上是输入,而不是输出。因此,你发送垃圾,幸运地得到回报。