46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#define _WIN32_WINNT 0x0501
|
|
#include <stdio.h>
|
|
#include <windows.h>
|
|
|
|
#include "../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;
|
|
}
|