|
#define _WIN32_WINNT 0x0501 |
|
#include <stdio.h> |
|
#include <windows.h> |
|
|
|
#include "../src/shared/DebugClient.cc" |
|
|
|
const int SC_CONSOLE_MARK = 0xFFF2; |
|
const int SC_CONSOLE_SELECT_ALL = 0xFFF5; |
|
|
|
CALLBACK DWORD pausingThread(LPVOID dummy) |
|
{ |
|
HWND hwnd = GetConsoleWindow(); |
|
while (true) { |
|
SendMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_SELECT_ALL, 0); |
|
Sleep(1000); |
|
SendMessage(hwnd, WM_CHAR, 27, 0x00010001); |
|
Sleep(1000); |
|
} |
|
} |
|
|
|
int main() |
|
{ |
|
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); |
|
CONSOLE_SCREEN_BUFFER_INFO info; |
|
|
|
GetConsoleScreenBufferInfo(out, &info); |
|
COORD initial = info.dwCursorPosition; |
|
|
|
CreateThread(NULL, 0, |
|
pausingThread, NULL, |
|
0, NULL); |
|
|
|
for (int i = 0; i < 30; ++i) { |
|
Sleep(100); |
|
GetConsoleScreenBufferInfo(out, &info); |
|
if (memcmp(&info.dwCursorPosition, &initial, sizeof(COORD)) != 0) { |
|
trace("cursor moved to [%d,%d]", |
|
info.dwCursorPosition.X, |
|
info.dwCursorPosition.Y); |
|
} else { |
|
trace("cursor in expected position"); |
|
} |
|
} |
|
return 0; |
|
} |
|
|