Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2008, 03:55   #1
Domoffou
 
Регистрация: 28.12.2007
Сообщений: 5
По умолчанию ListView в другой программе

Есть в другой программе (Outlook) таблица (входящих писем).
Спомощью винспая определил, что класс называется "ATL:SysListView32".
Мне необходимо вытащить оттуда 2 поля: от кого пришло сообщение и тема.
Спомощью вот такого кода вытаскиваю поле "тема" без проблем,
но когда речь идет о поле "от кого" - возвращается пустая строка. Есть подозрения, что в Outlook это поле не текст вовсе, ав например кнопка, оформленная под текст. Подскажите, пожалуйста, как перехватить текст из этого поля, может послать ему мессагу вроде WM_COPY?

Код:
count := integer(SendMessage(listview, LVM_GETITEMCOUNT, 0, 0));

    GetWindowThreadProcessId(listview, pid);
    process := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_QUERY_INFORMATION, false, pid);

    _it := PLVItem(VirtualAllocEx(process, nil, sizeof(TLVItem), MEM_COMMIT, PAGE_READWRITE));
    _buf := pchar(VirtualAllocEx(process, nil, 512, MEM_COMMIT, PAGE_READWRITE));

    it.cchTextMax := 70;
    it.iSubItem:=3;  // Номер столбца по порядку
    it.pszText:=_buf;
    WriteProcessMemory(process, _it, @it, sizeof(TLVItem), bw);
    selected:=SendMessage(listview, LVM_GETNEXTITEM, 0, LVIS_SELECTED);  // Определяем выделенную строку
    memo1.Lines.Add(IntToStr(selected));  // Пишем ее в мемо1
    SendMessage(listview, LVM_GETITEMTEXT, selected, lparam(_it));
    ReadProcessMemory(process, _buf, @buf, 70, bw);
    memo1.Lines.Add(buf);
//--//
Буду благодарен любой помощи.
Domoffou вне форума Ответить с цитированием
Старый 22.01.2008, 05:33   #2
Maksss
Новичок
Джуниор
 
Регистрация: 22.01.2008
Сообщений: 1
По умолчанию

Дай бог помогут или сам разберешься...поделись...
Похожая задача.

Заранее СПАСИБО.
maks@sky-line.dp.ua
Maksss вне форума Ответить с цитированием
Старый 22.01.2008, 08:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: Какой у тя аутглюк? у 2003го это не ListView а SUPERGRID
Во-вторых: А не проще подключить аутглюк к своей проге как СОМ - OutlookApplication сервер и получать данные обычним способом?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ListView aesoem Общие вопросы Delphi 4 05.07.2008 15:55
ListView Старовъръ Компоненты Delphi 8 02.07.2008 19:08
ListView Witaliy Общие вопросы Delphi 1 01.05.2008 20:46
ListView Terran Общие вопросы Delphi 2 05.04.2008 23:15
ListView Garacio Компоненты Delphi 1 17.12.2006 15:30