Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Внедрил dll. Не могу получить инфу из listview через SendMessage() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 2D ,3D графика и масивы http://www.cyberforum.ru/cpp-beginners/thread444789.html
Помогите, срочно нужно решить задачу. Есть исходный массив фигуры из базовых точек периметра в плоскости нужно получить другой массив точек по периметру но уже откорректированных по периметру с...
C++ Найти все слова, в которые заданный символ входит не менее двух раз Написать 2 программы 1) 2) Для каждой программы написать 2 варианта: 1 вариант - работа со строками поэлементно char 2 вариант максимально использовать стандартные подпрограммы. http://www.cyberforum.ru/cpp-beginners/thread444751.html
C++ pow: неоднозначный вызов перегруженной функции
#include <iostream> using namespace std; int main() { int i; double res= {0},r; i=0;r=0; cout.setf(ios::fixed); cout.precision(2);
Размер и цвет текста в консоле C++
Здравствуйте! Требуется программно задать цвет и размер определённой текстовой строки в консольном приложении. Возможно ли вообще это?
C++ На что нужно делать упор в изучении C++? http://www.cyberforum.ru/cpp-beginners/thread444697.html
Итак, можно сказать что основы изучения C++ я прошел, что такое конструктор или виртуальный деструктор я различаю. Хочу перейтти на ступеньку выше в познании етого нелегкого дела - програмирования....
C++ Комбинации отобразить в целое Добрый день! Вот такая у меня задача: Получаю на входе 5 значений double. Пусть переменные a,b,c,d,e 1 задача расположить их в порядке убывания. Например deabc (равенство меня не волнует) 2... подробнее

Показать сообщение отдельно
maxgold
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 14

Внедрил dll. Не могу получить инфу из listview через SendMessage() - C++

12.02.2012, 11:20. Просмотров 424. Ответов 0
Метки (Все метки)

День добрый, уважаемые программисты!
Внедрил dll в стороннее приложение через CreateRemoteThread. В DLL_PROCESS_ATTACH обработчике создаю поток. А в самом потоке пытаюсь получить содержимое listview в адресном пространстве этого приложения. SendMessage 0 возвращает. Вот сам код потока:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    HWND wndHandle = FindWindow(NULL, TEXT("Window name"));
    HWND listviewHandle;
    RECT rcClient;
    if(GetClientRect(wndHandle, &rcClient) != NULL)
    {
        _itoa(rcClient.bottom, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.left, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.right, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.top, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
    }
    else
    {
        LPVOID lpMsgBuf;
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL);
        MessageBox( NULL, (LPCSTR)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
    }
    POINT lvPoint;
    lvPoint.x=rcClient.left+100;
    lvPoint.y=rcClient.bottom-200;
    listviewHandle = ChildWindowFromPoint(wndHandle, lvPoint);
    if(GetClassName(listviewHandle, buf, 32) != NULL)
    {
        MessageBox(NULL, "OK", buf, MB_OK);
    }
    else
    {
        LPVOID lpMsgBuf;
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL);
        MessageBox( NULL, (LPCSTR)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
    }
    
    if(GetClientRect(listviewHandle, &rcClient) != NULL)
    {
        /*
        _itoa(rcClient.bottom, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.left, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.right, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        _itoa(rcClient.top, buf, 10);
        MessageBox(NULL, "OK",buf, MB_OK);
        */
    }
    else
    {
        LPVOID lpMsgBuf;
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL);
        MessageBox( NULL, (LPCSTR)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
    }
 
    _itoa((int)listviewHandle, buf, 10);
    MessageBox(NULL, buf, TEXT("listviewHandle:"), MB_OK);
    int i = (int) SendMessage(listviewHandle, LVM_GETITEMCOUNT, 0, 0);
    _itoa(i, buf, 10);
    MessageBox(NULL, buf, TEXT("listviewHeader:"), MB_OK);
    HWND listviewHeader = (HWND) SendMessage(listviewHandle, LVM_GETHEADER, 0, 0);
    int j = (int) SendMessage(listviewHeader, HDM_GETITEMCOUNT, 0, 0);
    _itoa(j, buf, 10);
    MessageBox(NULL, buf, TEXT("listviewHeader:"), MB_OK);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru