получить itemtext из SysListView32

#c# #winapi #listview #sendmessage

#c# #winapi #просмотр списка #отправить сообщение

Вопрос:

я пытаюсь получить текст в 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:

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

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

Комментарии:

1. я понял! большое вам спасибо. social.msdn.microsoft.com/Forums/zh-CN/2212/thread /…