получить itemtext из SysListView32 - PullRequest
3 голосов
/ 18 октября 2011

Я пытаюсь получить текст в SysListView32 из другого приложения на C #. я могу получить 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);
            }

1 Ответ

2 голосов
/ 18 октября 2011

Вам нужно больше работать, чтобы читать и записывать память LVITEM, поскольку вы работаете с элементом управления, принадлежащим другому процессу.Поэтому вам нужно читать и записывать память в этом процессе.Вы не можете сделать это без вызова ReadProcessMemory, WriteProcessMemory и т. Д.

Наиболее часто цитируемый пример используемых методов - это статья проекта кода: Кража памяти программы .Остерегайтесь 32/64-битных ошибок.

...