我有一种情况,我必须使用Windows API从另一个程序中的富文本框中检索文本;我想知道是否有任何方法可以从中获取“富文本”,而不仅仅是纯文本。
在此示例中,ptrHandle是RichText控件句柄。
if (ptrHandle == null)
return null;
if (ptrHandle == IntPtr.Zero)
return null;
IntPtr ptrLength =
SendMessage(ptrHandle, WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero);
var nLen = ptrLength.ToInt32();
if (nLen <= 0)
return null;
var strBuffer = new System.Text.StringBuilder(nLen + 1);
SendMessage(ptrHandle, WM_GETTEXT, new IntPtr(nLen + 1), strBuffer);
这一切都是在C#中完成的。它可以很好地获取文本,但是它被剥离了格式化等等。我希望我也可以检索所有这些。
答案 0 :(得分:1)
好消息:EM_STREAMOUT可帮助您检索具有格式的RTF。坏消息:如果不将DLL注入进程,就无法完成这项工作,因为它需要回调。您无法使 在C#中工作,需要本机C / C ++。我知道,没有帮助。