• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Tmetricagrid:: Tinplaceedit Как Получить Табличку?

  • Автор темы Necrolog
  • Дата начала
N

Necrolog

Я не программист делфи, при помощи программы SPY нашел класс окна в приложении написанном на делфи как я понял.
Это окно очень напоминает по виду ListView. Мне нужно достать из этого окна данные. только при помощи SENDMESSAGE или POSTMESSAGE в другое приложении. Какими сообщениями можно попробовать достать все ячейки?
 
S

sinkopa

Я не программист делфи...
А на чем пишете?
при помощи программы SPY нашел класс окна в приложении написанном на делфи как я понял.
Это окно очень напоминает по виду ListView. Мне нужно достать из этого окна данные.
Огласите пожалуйста класс окна... Если это действительно Delphi класс, тогда попытаюсь подсказать можно ли из него вообще достать текст и если да, то как...
только при помощи SENDMESSAGE или POSTMESSAGE в другое приложении. Какими сообщениями можно попробовать достать все ячейки?
Если он (текст) там (в окне) вообще есть... Может там одна канва и все на ней графическими функциями отрисовывается... :)
Если есть, то как обычно:
1. Сначала WM_GETTEXTLENGTH (узнаем длину текста в байтах)
Код:
var
FocusedWnd : HWND;
BytesNeeded : DWORD;
TexBuffer : PChar;
//...
BytesNeeded := SendMessage(FocusedWnd, WM_GETTEXTLENGTH, 0, 0);
2. Выделяем память под текст
Код:
 GetMem(TexBuffer, BytesNeeded + 1);
ZeroMemory(TexBuffer, BytesNeeded + 1);
3. Ну и собственно WM_GETTEXT (получаем текст)
Код:
  if (SendMessage(FocusedWnd, WM_GETTEXT, BytesNeeded + 1, lParam(TexBuffer)) > 0) then
begin
WindowText := TexBuffer;
//...
end;
FreeMem(TexBuffer);
Т.е. никаких особых извратов... :)
 
N

Necrolog

Класс окна в шапке темы Tmetricagrid
Скорее всего производный от Tinplaceedit.
пишу на C#
WM_Gettext там точно не поможет
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!