Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считывание информации из чужого приложения 
:(
    Опции темы
Chimera
  Дата 21.7.2005, 04:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как из TreeView чужого приложения вывести информацию в TreeView своего приложения?
  Вверх
chaos
Дата 21.7.2005, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 1
Всего: 44



сложно, но можно! smile

только зачем такой изврат?

Это сообщение отредактировал(а) chaos - 21.7.2005, 06:40
PM WWW   Вверх
p0s0l
Дата 22.7.2005, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



С помощью TVM_* сообщений...



--------------------
С уважением, г-н Посол.
PM   Вверх
rsm
Дата 23.7.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 4
Всего: 62



Все не так просто как кажется - по дефолту Винда запрещает грабить окна программ другого процесса. Я когда-то писал граббер ListView и столкнулся с проблемой, что текст получить нельзя, хотя хендл окна правильный. Надо снова курить Рихтера про межпроцессное взаимодействие - исходники сгинули вместе с диском smile
PM MAIL   Вверх
S.A.P.
Дата 23.7.2005, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Если есть исходники того приложения, то можно через DDE.
PM MAIL   Вверх
Girder
Дата 24.7.2005, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: нет
Всего: 155




Для Win9X(ME) выделять память не нужно, но точно не помню smile (и не надо меня спрашивать как в Win9X выделить память в чужом процессе smile - так как инфы по ентому делу полно в инете), а вот для NT во многих случаях надо выделять память в чужом процессе... иначе обработчик данного сообщения получить указатель на память... вот только адресс ентот будет справедлив для процесса инициатора запроса smile

Цитата(p0s0l @ 24.7.2005, 01:08)
Получить можно.
Угу... так и есть.

Цитата(p0s0l @ 24.7.2005, 01:08)
Просто в некоторых случаях нужно применять VirtualAllocEx + Read/WriteProcessMemory (для того, чтобы получить результаты обработки сообщения)...
Например для NT: WM_x,LB_x,CB_x не надо(но например для EM_GETLINE - надо выделять). Если имеем дело со структурой... то что то я не припомню что бы где-нибудь мне не пришлось выделять память в чужом процессе. И всегда надо выделять... если сообщение не "стандартное" smile

PS: Кстати... WM_GetText запросто может вернуть другое значение чем GetWindowText для чужого приложения(для своего они будут совпадать)... так как при запросе у чужого приложения через GetWindowText, не будет использованно WM_GetText smile

Цитата(rsm @ 23.7.2005, 20:17)
и столкнулся с проблемой, что текст получить нельзя
можно... уже не однократно приводились примеры, как енто делается в NT.
А вообще:
1. Доступ
2. Выделение
3. запись инициализированной структуры
4. запрос
5. считывание структуры.
6. Освобождение
7. Закрытие доступа.

PS: p0s0l - ты зачем свое сообщение удалил smile ?

Это сообщение отредактировал(а) Girder - 24.7.2005, 23:53


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
p0s0l
Дата 24.7.2005, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата(Girder @ 24.7.2005, 03:05)
PS: p0s0l - ты зачем свое сообщение удалил  ?
Да... Просто давно это делал, тут написал, а потом подумал, мож напутал я всё smile




--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.