UNPKG

1.15 kBtext/x-cView Raw
1#define _WIN32_WINNT 0x0501
2#include <stdio.h>
3#include <windows.h>
4
5#include "../src/shared/DebugClient.cc"
6
7const int SC_CONSOLE_MARK = 0xFFF2;
8const int SC_CONSOLE_SELECT_ALL = 0xFFF5;
9
10CALLBACK DWORD pausingThread(LPVOID dummy)
11{
12 HWND hwnd = GetConsoleWindow();
13 while (true) {
14 SendMessage(hwnd, WM_SYSCOMMAND, SC_CONSOLE_SELECT_ALL, 0);
15 Sleep(1000);
16 SendMessage(hwnd, WM_CHAR, 27, 0x00010001);
17 Sleep(1000);
18 }
19}
20
21int main()
22{
23 HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
24 CONSOLE_SCREEN_BUFFER_INFO info;
25
26 GetConsoleScreenBufferInfo(out, &info);
27 COORD initial = info.dwCursorPosition;
28
29 CreateThread(NULL, 0,
30 pausingThread, NULL,
31 0, NULL);
32
33 for (int i = 0; i < 30; ++i) {
34 Sleep(100);
35 GetConsoleScreenBufferInfo(out, &info);
36 if (memcmp(&info.dwCursorPosition, &initial, sizeof(COORD)) != 0) {
37 trace("cursor moved to [%d,%d]",
38 info.dwCursorPosition.X,
39 info.dwCursorPosition.Y);
40 } else {
41 trace("cursor in expected position");
42 }
43 }
44 return 0;
45}