Показать сообщение отдельно
  #1  
Старый 05.04.2009, 13:23
8shar 8shar вне форума
Прохожий
 
Регистрация: 05.04.2009
Сообщения: 6
Репутация: 10
Злость Чтение с консоли

Доброго дня. Есть программа скрин которой здесь:
http://antsa.narod.ru/img.jpg
Вверху есть рамочка, в рамочке значения давления, температуры, расхода, мне нужно их забрать от туда. Программа старая (вроде как) MSDOS, использует процесс который называется NTVDM.EXE, он является вирт.машиной, исполняющей 16-разрядные ДОС-приложения.
Все это выводиться в консоль (CMD проще говоря).
Мне позарез нужно достать от туда эти данные:
Что я УЖЕ (за 3 дня) знаю что есть:

ReadConsoleOutput
http://winapi.freetechsecrets.com/wi...soleOutput.htm
В ReadConsoleOutput функция читает характер и цвет атрибут данных из прямоугольных блоков характера клеток в буфер экрана консоли, а также функция записывает данные в прямоугольных блоков на указанном месте в буфер назначения.

ReadConsoleOutputAttribute
http://winapi.freetechsecrets.com/wi...tAttribute.htm
В ReadConsoleOutputAttribute функция копии указанного количества плана и цвет фона атрибуты из последовательных ячеек консольный буфер экрана, начиная с указанного места.


ReadConsoleOutputCharacter
http://winapi.freetechsecrets.com/wi...tCharacter.htm
В ReadConsoleOutputCharacter функция копии ряда персонажей из последовательных ячеек консольный буфер экрана, начиная с указанного места.

Я делаю:
Код:
var
 pid: DWORD;
 hStdout: thandle;
 Buffer:array of integer;
 c:coord;
 wr:cardinal;
begin
 c.X:=1;
 c.Y:=1;
 GetWindowThreadProcessId(FindWindow('C:\WINDOWS\system32\cmd.exe',nil), @pid);
 hStdout := GetStdHandle(STD_OUTPUT_HANDLE);
 ReadConsoleOutputAttribute(hStdout,@Buffer[0],2,C,Wr);

 Memo1.Lines.Add(IntToStr(buffer[0]));
 Memo1.Lines.Add(IntToStr(wr));
end;
Но не работает. Помогите пожалуйста разобраться. Мне просто позарез нужны эти цифры...
Ответить с цитированием