Показать сообщение отдельно

  #5  
Старый 26.10.2009, 15:50
Ra$cal
Постоянный
Регистрация: 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 процесса вручную вбит. Подставляй свой.

Вообще мсдн решает, просто нада ковыряться не только в одной статье =) Правда тут хватило одной и одного примера к ней.
 
Ответить с цитированием