Вчера, вкурив хорошей травы и залив все это дело добрым пивом, я решил "внимательнее изучить" твою проблему...
Итак, нам нужен адрес функции TStringGrid.GetCells в памяти целевого процесса. Для этого необходимо провести поиск в секции CODE по заранее подготовленной сигнатуре. Границы секции в памяти можно установить распарсив PE-файл процесса на диске. Сигнатурой может служить код всей функции, благо он не шибко большой (так поиск выйдет надежнее).
В эту функцию передается четыре параметра. Она имеет тип вызова fastcall - следовательно параметры передаются через регистры (первые три, остальные через стек) в следующей последовательности:
Первый - указатель на экзэмпляр соответствующего класса TStringGrid (регистр EAX)
Второй - Номер столбца начиная с нуля (регистр EDX)
Третий - Номер строки начиная с нуля (регистр ECX)
Четвертый - (выходной параметр) Заполняется адресом возвращаемой строки (стек)
После того, как найдем адрес TStringGrid.GetCells, необходимо найти указатель на нужный экзэмпляр класса TStringGrid. Следует отталкиваться от хэндла окна грида. Хэндл нужно искать в памяти процесса, не принадлежащей ни одному образу PE-файла, ибо эта память выделяется динамически. Найдя нужный DWORD, следует от полученного адреса отнять 180h и указатель на класс готов.
Конечно, гарантировать что мы нашли именно хэндл, а не какой-то мусор, просто так нельзя. Тут поможет тот факт, что по смещению 8h от начала записи о классе должен лежать указатель на имя грида (ASCII). Это нам и нужно проверить, мы ведь знаем, что имя компонента в Делфях состоит только из латинских символов, не содержит пробелов и длиной максимум 255 байт.
Думаю, реализовав все вышеописанное, определить количество строк и столбцов в сетке труда не составит...
Теперь, предварительно внедрившись в АП целевого процесса, можно вызывать TStringGrid.GetCells и ловить результат на стеке. Если результат равен пустой строке, то на стек ложится ноль.
Данные в свой процесс я бы рекомендовал передавать через файл-маппинг.
Эксперименты я ставил на Delphi7 под Вистой. На других версиях не проверял.
Что еще сказать? Метод, конечно, черезжопный. И, скорее всего, нет-нет будет глючить из-за ненадежности поиска. Но на первых порах сойдет. Короче, можешь попробовать, если не жалко потраченные силы на такую задачу...
А я все практикую лечение травами...