簡體   English   中英

在C#richtextbox中調用Win32 API SendMessage復制所選文本將少返回一個字符

[英]Calling Win32 API SendMessage in C# richtextbox to copy selected text returns one character less

我正在嘗試使用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調用此方法將少返回一個字符。 有人知道為什么嗎? 以及如何解決此問題。

SendMessage實際上應該是

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

wParam和lParam實際上是輸入,而不是輸出。 因此,您正在發送垃圾,很幸運能得到一些回報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM