const int SC_CONSOLE_MARK = 0xFFF2; | |
CALLBACK DWORD writerThread(void*) | |
{ | |
while (true) { | |
Sleep(1000); | |
trace("writing"); | |
printf("X\n"); | |
trace("written"); | |
} | |
} | |
int main() | |
{ | |
CreateThread(NULL, 0, writerThread, NULL, 0, NULL); | |
trace("marking console"); | |
HWND hwnd = GetConsoleWindow(); | |
PostMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_MARK, 0); | |
Sleep(2000); | |
trace("reading output"); | |
CHAR_INFO buf[1]; | |
COORD bufSize = { 1, 1 }; | |
COORD zeroCoord = { 0, 0 }; | |
SMALL_RECT readRect = { 0, 0, 0, 0 }; | |
ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), | |
buf, | |
bufSize, | |
zeroCoord, | |
&readRect); | |
trace("done reading output"); | |
Sleep(2000); | |
PostMessage(hwnd, WM_CHAR, 27, 0x00010001); | |
Sleep(1100); | |
return 0; | |
} | |