Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 18:28   #1
BeerDrinker
Пользователь
 
Аватар для BeerDrinker
 
Регистрация: 30.01.2011
Сообщений: 16
Сообщение Получение данных из TStringGrid стороннего приложения

Доброго времени суток!

Передо мной возникла следующая проблема:
есть приложение с компонентом TStringGrid, в ячейках которого находятся некоторые данные, собственно эти данные и должно мое приложение достать...

Соответсвенно есть handle как главного окна стороннего приложения, так и стринггрида. Попытка достать данные с помощью сообщения wm_gettext ни к чему не приводт(хотя это и ожидаемо).
Подскажите пожалуйста, что можно придумать в данной ситуации?

Для простоты и наглядности вопроса можно представить чо у нас есть 2 приложения, одно содержит кнопку и какой-нибудь элемент для получаемых данных(мемо, стринг грид ну или что угодно, важно видеть что данные передались), а второе, собственно только стринггрид с произвольными данными.

Заранее спасибо за любые толковые мысли или функциональные примеры!
BeerDrinker вне форума Ответить с цитированием
Старый 30.01.2011, 19:14   #2
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Дайте эту программу, дайте ее суда
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 31.01.2011, 09:47   #3
BeerDrinker
Пользователь
 
Аватар для BeerDrinker
 
Регистрация: 30.01.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от yuran666666 Посмотреть сообщение
Дайте эту программу, дайте ее суда
Пожалуйте

Это, пример программы из которой нужно получить данные:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: byte;
begin
  for j := 0 to StringGrid1.RowCount - 1 do
    for i := 0 to StringGrid1.ColCount - 1 do
      StringGrid1.Cells[i, j] := inttostr((i + 1) * (j + 1));
end;
На форме есть только стринггрид 6 столбцов на 8 строк, заполненный таблицей умножения.

Это пример обработчика из программы которая должна получить данные:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  str, wnd: hwnd;
  s: array [0 .. 255] of char;
begin
  str := 0;
  wnd := findwindow(nil, 'My_Test_App'); // ищем окно нашего тестового приложения
  if wnd = 0 then
    showmessage('Error! Application not found')
  else
    str := findwindowex(wnd, 0, 'tstringgrid', nil);// ищем в найденом окне TStringGrid
  if str = 0 then
    showmessage('Error! Contol not found')
  else
  begin
    Memo1.Clear;
    sendmessage(str, WM_GETTEXT, 255, lparam(@s)); //Пытаемся получить данные
    Form1.Caption := inttostr(sendmessage(str, WM_GETTEXTLENGTH, 0, 0)); //Смотрим на длину текста, она рабна нулю...
    Memo1.Text := s; //Пытаемся записать данные в мемо, но переменная s пуста...
  end;
end;
BeerDrinker вне форума Ответить с цитированием
Старый 31.01.2011, 09:59   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Считай что никак.
mss вне форума Ответить с цитированием
Старый 31.01.2011, 12:58   #5
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

имелось ввиду уже покампиленную, бинарник тобишь, а то мне нечем собрать данный кодес
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 31.01.2011, 14:08   #6
BeerDrinker
Пользователь
 
Аватар для BeerDrinker
 
Регистрация: 30.01.2011
Сообщений: 16
По умолчанию

Вот файлик с примером заполненного стринггрида на форме - програма ничего не делает, повторюсь это всего лишь пример чтобы было понятней, мне важно узнать сам принцип взаимодействия с такого рода компонентами.
Вложения
Тип файла: zip testprj.zip (402.9 Кб, 17 просмотров)
BeerDrinker вне форума Ответить с цитированием
Старый 31.01.2011, 14:19   #7
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

http://forum.vingrad.ru/articles/topic-226725.html
mss вне форума Ответить с цитированием
Старый 31.01.2011, 14:36   #8
BeerDrinker
Пользователь
 
Аватар для BeerDrinker
 
Регистрация: 30.01.2011
Сообщений: 16
По умолчанию

Спасибо огромное! очень ценная статья, жаль не нашел ее раньше
Буду разбираться!
BeerDrinker вне форума Ответить с цитированием
Старый 31.01.2011, 14:59   #9
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

ну раз вы уже разбираетесь с шеллкодесами, то я тогда не буду
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 31.01.2011, 17:53   #10
BeerDrinker
Пользователь
 
Аватар для BeerDrinker
 
Регистрация: 30.01.2011
Сообщений: 16
По умолчанию

Я был бы рад какой-нибудь альтернативной реализации или интересной мысли, всегда хорошо когда на выбор есть несколько вариантов
Если у вас есть желание чтобы помочь, буду только рад!
и Спасибо вам за помощь
BeerDrinker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение HTML кода стороннего сайта SuBwooFer JavaScript, Ajax 1 02.05.2010 22:21
Защита стороннего приложения Mifody Общие вопросы Delphi 1 25.03.2010 13:19
Работа с компонентами стороннего приложения imprezident Win Api 1 30.05.2009 22:12
Как определить класс стороннего приложения. Son Win Api 6 25.11.2008 11:52
Смена иконки стороннего приложения Wiedzmin Win Api 2 01.05.2007 16:19