我试图通过C#从另一个应用程序获取SysListView32中的文本。
我可以获得LVM_GETITEMCOUNT
,但LVM_GETITEMW = 0x1000 + 13
始终返回-1
。我如何通过C#获取文本?我是新的。非常感谢!
ParenthWnd = FindWindow(ParentClass, ParentWindow);
if (!ParenthWnd.Equals(IntPtr.Zero))
{
zWnd = FindWindowEx(ParenthWnd, zWnd, zClass, zWindow);
if (!zWnd.Equals(IntPtr.Zero))
{
int user = SendMessage(zWnd, LVM_GETITEMCOUNT, 0, 0);
}
答案 0 :(得分:2)
由于您正在使用另一个进程拥有的控件,因此您需要更加努力地读取和写入LVITEM
内存。因此,您需要在该过程中读写内存。如果不致电ReadProcessMemory
,WriteProcessMemory
等等,您就无法做到这一点。
最常被引用的技术示例是此代码项目文章:Stealing Program's Memory。注意32/64位陷阱。