Как получить текст элемента дерева другого приложения
От: DmitryChernov  
Дата: 16.07.04 10:00
Оценка:
Приветствую.

Пытаюсь получить текст элемента дерева другого приложения (например, из "Windows Explorer") пишу вот так:
#include <atlbase.h>
#include <atlapp.h>
#include <atlctrls.h>
#include <iostream>

int main()
{
    CTreeViewCtrlEx tvc;

    tvc = (HWND)0x000806D8; //Значение получено при помощи Spy++

    CTreeItem tiCur = tvc.GetSelectedItem(); //Значение получаю, т.е. тут не NULL
    WCHAR szBuf[1024] = { 0 };
    if (!tiCur.GetText(szBuf, sizeof(szBuf) / sizeof(WCHAR)))
//    if (!tiCur.SortChildren(TRUE))
        std::wcout << L"Error" << std::endl;
    else
        std::wcout << szBuf << std::endl;

    return 0;
}

Так вот всегда вываливается на ошибку и буфер не заполняет. С начало закралась мысль, что сообщения пришедшие из другого приложения не попадают к окну (понимаю, что мысль шальная, но черт его знает), заменил строку получения текста на сортировку. В результате все сработало и дочерние элементы отсортировались, это доказывает, что сообщения к окну приходят (хотя может быть ни все, но все же ходят). Может кто объяснит, что я не так делаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.