我正在尝试通过 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);
}
最佳答案
您需要更加努力地读写 LVITEM
内存,因为您正在使用另一个进程拥有的控件。因此,您需要在该进程中读写内存。如果不调用 ReadProcessMemory
、WriteProcessMemory
等,您将无法执行此操作。
最常引用的相关技术示例是这篇代码项目文章:Stealing Program's Memory .当心 32/64 位问题。
关于c# - 从 SysListView32 获取项目文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804165/