Показать сообщение отдельно
  #18  
Старый 24.04.2009, 21:44
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Ну что-то аж не знаю! Проверяю на всех окнах класса SysListView32, какие только есть у Windows, и всё работает... Уже получаю и список процессов в Диспетчере задач, и список файлов в Explorer'е, и всё, что есть в консоли mmc, — всё вытаскивается. Не понятно, почему у вас не работает.
Вы тоже проверьте при возможности на других объектах ListView, хотя бы из тех, что я перечислила...

И попробуйте еще для ясности убрать из процедуры GetListViewData вот эти строчки:
Код:
DataGrid.RowCount := nItemCount + 1;
DataGrid.ColCount := ColumnCount + 1;
И предварительно (заранее) вне этой процедуры задайте для объекта StringGrid нужное количество строк и колонок (с учетом фиксированных). Посмотрим, как будет работать без этого...

P.S. Да, и еще. Раз уж вы делаете трассировку, посмотрите заодно, как программа проходится по тем циклам for, что в процедуре GetListViewData. Уж не вылетает ли она вот на этих Exit:
Код:
if not WriteProcessMemory(hProcess, plviRemoteLVItem, @lviRemoteLVItem,
                          SizeOf(LV_ITEM), dwBytesWriten) then Exit;
Ответить с цитированием