
26.10.2009, 15:50
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
Код:
#define _WIN32_WINNT 0x0610
#include <iostream>
#include <Windows.h>
#include <math.h>
using namespace std;
int main()
{
FreeConsole();
if(!AttachConsole(7696))
cout << "cant attach to console\n";
else
cout << "test writing to console\n";
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SMALL_RECT srctReadRect;
srctReadRect.Top = 0; // top left: row 0, col 0
srctReadRect.Left = 0;
srctReadRect.Bottom = 1; // bot. right: row 1, col 79
srctReadRect.Right = 79;
// The temporary buffer size is 2 rows x 80 columns.
COORD coordBufSize, coordBufCoord;
coordBufSize.Y = 2;
coordBufSize.X = 80;
// The top left destination cell of the temporary buffer is
// row 0, col 0.
coordBufCoord.X = 0;
coordBufCoord.Y = 0;
// Copy the block from the screen buffer to the temp. buffer.
CHAR_INFO chiBuffer[160]; // [2][80];
BOOL fSuccess;
fSuccess = ReadConsoleOutput(
hStdout, // screen buffer to read from
chiBuffer, // buffer to copy into
coordBufSize, // col-row size of chiBuffer
coordBufCoord, // top left dest. cell in chiBuffer
&srctReadRect); // screen buffer source rectangle
FreeConsole();
system("pause");
}
просто прочитать в массив. причем читать только видимую часть. там есть апи для вычисления области, в которой есть текст. ну и нада сервисные функции начирикать чтобы матрицу символов перегнать в обычную строку. надеюсь осилишь?
Да, pid процесса вручную вбит. Подставляй свой.
Вообще мсдн решает, просто нада ковыряться не только в одной статье =) Правда тут хватило одной и одного примера к ней.
|
|
|