从另一个进程获取ListView项

时间:2014-03-24 22:55:07

标签: c# windows listview winapi pinvoke

我希望在某个过程中从某个ListView获取项目文本 - 而不是我的过程。

实施例: 有ListView个正在运行的进程,我想得到第一个值的名称: ListView

在这种情况下,字符串将包含Hamachi2Svc

这是我的尝试:(我构建了一个类似于ListViewItem)的结构

StringBuilder sb = new StringBuilder(260);
LVITEM lv = new LVITEM();
lv.cchTextMax = 260;
lv.mask = 1;
lv.iItem = 1;
lv.iSubItem = 0;
IntPtr hProcess = IntPtr.Zero;

IntPtr pr = VirtualAllocEx(hProcess, IntPtr.Zero, IntPtr.Zero + 260, (uint)0x1000, (uint)4);
lv.pszText = pr;

IntPtr pLvItem = VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr.Zero+Marshal.SizeOf(lv)), (uint)0x1000, (uint)4);

SendMessage(handle,0x102D,IntPtr.Zero, pLvItem);

bool i = ReadProcessMemory(hProcess, pr, sb, 260,1); // -sb supposed to conatin the item value, but it's not :(

如果有人有其他想法,那就太棒了。

0 个答案:

没有答案