Форум: "WinAPI";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
ВнизКак вытащить содержимое ячейки StringGrid а ЧУЖОЙ программы Найти похожие ветки
← →
Nimbus (2003-03-16 21:30) [0]Доброго времени суток, Мастера!
Посоветуйте, plz, каким образом можно это (см. SUBJ) сделать средствами API Windows (или может ещё как-то).
Заранее СПАСИБО вам за помощь!
← →
Nimbus (2003-04-01 22:51) [1]...неужели никто не сталкивался с подобной проблемой?! :-)
← →
Morfein (2003-04-01 23:00) [2]Скорее всего никак... только если найти точку размещения этого stringgrid"a в памяти того процесса... потом используя опытным путём полученные offset"ы, найти указатель на массив данных и читать его... но это всё из области фантастики :) не то что бы невозможно, но сложно, нудно и бессмысленно!
← →
Suntechnic (2003-04-02 01:50) [3]>Nimbus ©
Только средствами API это действительно из разряда фантастики, но можно попробовать средствами VCL...
Внедряться в чужое адресное пространство придётся полюбому, а вот дальше можно попробовать использовать ф-цию FindControl.
← →
Игорь Шевченко (2003-04-02 13:31) [4]Нет смысла в подобной задаче. У StringGrid"a может быть переменная высота строк, переменная ширина столбцов, и т.п. Из чужого приложения в общем случае ее не вытащить
← →
Nimbus (2003-04-03 17:52) [5]
> Игорь Шевченко ©
Спасибо, обнадёжили!!! :-(
А что Вы, Игорь, скажете на вариант, предложенный Suntechnic "ом?? Я могу, конечно, заблуждаться, но, что-то в этом есть.
← →
Игорь Шевченко (2003-04-03 19:13) [6]Nimbus © (03.04.03 17:52)
Теоретически возможно все, в том числе и найти адрес в памяти чужого процесса, где расположены свойства StringGrid"a и при чтении учитывать значения этих свойств. Но от теории до практики будет лежать ООЧЧЕЕНЬ большая пропасть. Кстати, FindControl действует только в пределах своего приложения, достаточно посмотреть, как она ищет...
← →
Suntechnic (2003-04-03 19:28) [7]>Игорь Шевченко ©
Кстати, FindControl действует только в пределах своего приложения, достаточно посмотреть, как она ищет
Поэтому я и говорил что без внедрения не обойтись. Сам я такой "дурью" :) не занимался(эксперементировать тоже облом), но как вариант "пробовать" вполне может подойти автору вопроса.
← →
Morfein (2003-04-03 20:23) [8]>> Suntechnic
Вот ты пристал с этим внедрением! Зачем? Внедрение - это исполнения удалённого кода, кода, исполняемого вне контекста, изначально его содержащего. Причём тут поиск объекта в памяти?
Объект можно найти, например, по одинаковому для всех объектов коду... или по тексту, записанному в определённом свойстве, а потом высчитать опытным путём смещение...
← →
Suntechnic (2003-04-03 20:38) [9]>Morfein ©
Ты вопрос вообще читал?
Как вытащить содержимое ячейки StringGrid"а ЧУЖОЙ программы?
Вот мне интересно стало как ты будешь "лазить" по адресному пространству ЧУЖОГО процесса без внедрения, да ещё и доставать оттуда данные и передавать в своё приложение? Расскажи, если не трудно...
← →
Morfein (2003-04-03 21:05) [10]Хех... пожалста :))
Для чтения и изменения памяти чужого процесса существуют функции ReadProcessMemory и WriteProcessMemory соответственно... назначение понятно из названий, а использование - см. хелп.
← →
Suntechnic (2003-04-03 21:16) [11]>Morfein ©
Ага понятно. Значит ты считаешь что вот этих двух ф-ций достаточно, чтобы решить подобную задачу? Позвольте тогда ещё один вопрос: а где ты возьмёшь то, что передаётся вторым параметром в эти обе ф-ции? А именно те самые адреса по которым надо писАть/читать...
← →
Morfein (2003-04-03 21:38) [12]Так ведь здесь речь идёт о чём? О поиске объекта! Я и предлагаю человеку по какой-нить уникальной последновательности символов или по неизменной части кода StringGrid"a просканить память удалённого процесса (путём последовательного чтения памяти с помощью Read/WriteProcessMemory) и найти этот объект... а потом, в зависимости от того, по какому признаку он искал, высчитать offset до начала TStringGrid.FData и полей размерности массива и там уже работать как с обычным массивом, только использовать Read/WriteProcessMemory... Понятно объясняю? :)
← →
Suntechnic (2003-04-03 21:52) [13]>Morfein ©
Понятно объясняю? :)
Да не очень :) Особенно что касается "...по какой-нить уникальной последновательности символов или по неизменной части кода StringGrid"a..."
...а я предлагаю человеку другой путь (описание выше). И используя этот путь необходимо производить внедрение в адресное пространство другого процесса... так что у каждого своя правда... и кстати конечная цель это не объект найти, а данные из него выташить... вообщем этог уже перерастает во флейм, так что предлагаю закончить.
← →
Morfein (2003-04-03 21:59) [14]ок
← →
Nimbus (2003-04-04 16:10) [15]СПАСИБО вам: Suntechnic и Morfein !
Я попробую обязательно вариант с
> FindControl
(и скорее всего, приведу здесь пример кода).
Но, если у кого-то есть ещё идеи - БУДУ РАД "выслушать" их все!!! :-))
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c