245 lines
7.0 KiB
Protocol Buffer
245 lines
7.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option csharp_namespace = "WinIPC.Models";
|
|
|
|
enum CommandType {
|
|
UNKNOWN_COMMAND_TYPE = 0;
|
|
GET_WINDOWS_INFO = 1;
|
|
GET_SCREENSHOT = 2;
|
|
GET_PIXEL_COLOR = 3;
|
|
INPUT_ACTION = 4;
|
|
}
|
|
|
|
message Point {
|
|
int32 X = 1;
|
|
int32 Y = 2;
|
|
}
|
|
message AreaSize {
|
|
int32 width = 1;
|
|
int32 height = 2;
|
|
}
|
|
|
|
message WindowInfo
|
|
{
|
|
int32 hwnd = 1;
|
|
string title = 2;
|
|
int32 pid = 3;
|
|
int32 thread_id = 4;
|
|
bool is_active = 5;
|
|
Point cursor_position = 6;
|
|
AreaSize content_size = 7;
|
|
Point window_position = 8;
|
|
AreaSize window_size = 9;
|
|
}
|
|
|
|
message WindowsRequest {
|
|
repeated int32 hwnds = 1;
|
|
}
|
|
|
|
message WindowsResponse {
|
|
repeated WindowInfo data = 1;
|
|
}
|
|
|
|
message Request {
|
|
uint32 id = 1;
|
|
CommandType type = 2;
|
|
bytes payload = 15;
|
|
}
|
|
|
|
message Response {
|
|
uint32 id = 1;
|
|
bool success = 2;
|
|
string message = 3;
|
|
bytes payload = 15;
|
|
}
|
|
|
|
message ScreenshotRequest {
|
|
int32 hwnd = 1;
|
|
Point crop_position = 2;
|
|
AreaSize crop_size = 3;
|
|
}
|
|
|
|
message ScreenshotResponse {
|
|
AreaSize size = 1;
|
|
bytes data = 2;
|
|
}
|
|
|
|
message PixelRequest {
|
|
int32 hwnd = 1;
|
|
Point pixel_position = 2;
|
|
}
|
|
|
|
message PixelResponse {
|
|
uint32 rgb_color = 1;
|
|
}
|
|
|
|
enum InputType {
|
|
UNKNOWN_INPUT_TYPE = 0;
|
|
KEY_UP = 1;
|
|
KEY_DOWN = 2;
|
|
MOUSE_SCROLL = 3;
|
|
MOUSE_MOVE_TO = 4;
|
|
}
|
|
|
|
message InputAction {
|
|
InputType type = 1;
|
|
uint32 delay_ms = 2;
|
|
bytes payload = 15;
|
|
}
|
|
|
|
message ButtonInput {
|
|
Button button = 1;
|
|
}
|
|
|
|
message ScrollInput {
|
|
int32 offset = 1;
|
|
}
|
|
|
|
message MouseMoveInput {
|
|
Point position = 1;
|
|
}
|
|
|
|
message InputRequest {
|
|
int32 hwnd = 1;
|
|
repeated InputAction actions = 2;
|
|
}
|
|
|
|
message InputResponse {
|
|
int32 count = 1;
|
|
}
|
|
|
|
enum Button {
|
|
UNKNOWN_BUTTON = 0;
|
|
|
|
EXTENDED_KEY_FLAG = 32768; // 0x8000
|
|
MOUSE_EXTRA_FLAG = 128; // 0x0080
|
|
MOUSE_KEY_FLAG = 16384; // 0x4000
|
|
|
|
MOUSE_LEFT = 16386; // MOUSE_KEY_FLAG | 0x0002
|
|
MOUSE_RIGHT = 16392; // MOUSE_KEY_FLAG | 0x0008
|
|
MOUSE_MIDDLE = 16416; // MOUSE_KEY_FLAG | 0x0020
|
|
MOUSE_EXTRA1 = 16513; // MOUSE_KEY_FLAG | MOUSE_EXTRA_FLAG | 0x01
|
|
MOUSE_EXTRA2 = 16514; // MOUSE_KEY_FLAG | MOUSE_EXTRA_FLAG | 0x02
|
|
|
|
// --- Toggle Keys ---
|
|
CAPS_LOCK = 20; // 0x14
|
|
NUM_LOCK = 144; // 0x90
|
|
SCROLL_LOCK = 145; // 0x91
|
|
|
|
// --- Main Control Keys ---
|
|
BACKSPACE = 8; // 0x08
|
|
TAB = 9; // 0x09
|
|
ENTER = 13; // 0x0D
|
|
PAUSE = 19; // 0x13
|
|
ESCAPE = 27; // 0x1B
|
|
SPACE = 32; // 0x20
|
|
|
|
// --- Navigation and Editing Keys ---
|
|
PAGE_UP = 32793; // EXTENDED_KEY_FLAG | 0x21
|
|
PAGE_DOWN = 32794; // EXTENDED_KEY_FLAG | 0x22
|
|
END = 32795; // EXTENDED_KEY_FLAG | 0x23
|
|
HOME = 32796; // EXTENDED_KEY_FLAG | 0x24
|
|
LEFT = 32797; // EXTENDED_KEY_FLAG | 0x25
|
|
UP = 32798; // EXTENDED_KEY_FLAG | 0x26
|
|
RIGHT = 32799; // EXTENDED_KEY_FLAG | 0x27
|
|
DOWN = 32800; // EXTENDED_KEY_FLAG | 0x28
|
|
PRINT_SCREEN = 32808; // EXTENDED_KEY_FLAG | 0x2C
|
|
INSERT = 32813; // EXTENDED_KEY_FLAG | 0x2D
|
|
DELETE = 32814; // EXTENDED_KEY_FLAG | 0x2E
|
|
|
|
// --- Main Alphanumeric Keys ---
|
|
KEY_0 = 48; // 0x30
|
|
KEY_1 = 49; // 0x31
|
|
KEY_2 = 50; // 0x32
|
|
KEY_3 = 51; // 0x33
|
|
KEY_4 = 52; // 0x34
|
|
KEY_5 = 53; // 0x35
|
|
KEY_6 = 54; // 0x36
|
|
KEY_7 = 55; // 0x37
|
|
KEY_8 = 56; // 0x38
|
|
KEY_9 = 57; // 0x39
|
|
KEY_A = 65; // 0x41
|
|
KEY_B = 66; // 0x42
|
|
KEY_C = 67; // 0x43
|
|
KEY_D = 68; // 0x44
|
|
KEY_E = 69; // 0x45
|
|
KEY_F = 70; // 0x46
|
|
KEY_G = 71; // 0x47
|
|
KEY_H = 72; // 0x48
|
|
KEY_I = 73; // 0x49
|
|
KEY_J = 74; // 0x4A
|
|
KEY_K = 75; // 0x4B
|
|
KEY_L = 76; // 0x4C
|
|
KEY_M = 77; // 0x4D
|
|
KEY_N = 78; // 0x4E
|
|
KEY_O = 79; // 0x4F
|
|
KEY_P = 80; // 0x50
|
|
KEY_Q = 81; // 0x51
|
|
KEY_R = 82; // 0x52
|
|
KEY_S = 83; // 0x53
|
|
KEY_T = 84; // 0x54
|
|
KEY_U = 85; // 0x55
|
|
KEY_V = 86; // 0x56
|
|
KEY_W = 87; // 0x57
|
|
KEY_X = 88; // 0x58
|
|
KEY_Y = 89; // 0x59
|
|
KEY_Z = 90; // 0x5A
|
|
|
|
// --- Windows Keys ---
|
|
L_WIN = 32859; // EXTENDED_KEY_FLAG | 0x5B
|
|
R_WIN = 32860; // EXTENDED_KEY_FLAG | 0x5C
|
|
APPS = 32861; // EXTENDED_KEY_FLAG | 0x5D
|
|
|
|
// --- Numeric Keypad (NumPad) ---
|
|
NUM_0 = 32864; // EXTENDED_KEY_FLAG | 0x60
|
|
NUM_1 = 32865; // EXTENDED_KEY_FLAG | 0x61
|
|
NUM_2 = 32866; // EXTENDED_KEY_FLAG | 0x62
|
|
NUM_3 = 32867; // EXTENDED_KEY_FLAG | 0x63
|
|
NUM_4 = 32868; // EXTENDED_KEY_FLAG | 0x64
|
|
NUM_5 = 32869; // EXTENDED_KEY_FLAG | 0x65
|
|
NUM_6 = 32870; // EXTENDED_KEY_FLAG | 0x66
|
|
NUM_7 = 32871; // EXTENDED_KEY_FLAG | 0x67
|
|
NUM_8 = 32872; // EXTENDED_KEY_FLAG | 0x68
|
|
NUM_9 = 32873; // EXTENDED_KEY_FLAG | 0x69
|
|
NUM_MUL = 106; // 0x6A
|
|
NUM_ADD = 107; // 0x6B
|
|
NUM_SUB = 109; // 0x6D
|
|
NUM_DEC = 32878; // EXTENDED_KEY_FLAG | 0x6E
|
|
NUM_DIV = 32879; // EXTENDED_KEY_FLAG | 0x6F
|
|
NUM_ENTER = 32781; // EXTENDED_KEY_FLAG | ENTER
|
|
|
|
// --- Function Keys ---
|
|
F1 = 112; // 0x70
|
|
F2 = 113; // 0x71
|
|
F3 = 114; // 0x72
|
|
F4 = 115; // 0x73
|
|
F5 = 116; // 0x74
|
|
F6 = 117; // 0x75
|
|
F7 = 118; // 0x76
|
|
F8 = 119; // 0x77
|
|
F9 = 120; // 0x78
|
|
F10 = 121; // 0x79
|
|
F11 = 122; // 0x7A
|
|
F12 = 123; // 0x7B
|
|
|
|
// --- Modifier Keys ---
|
|
L_SHIFT = 160; // 0xA0
|
|
R_SHIFT = 161; // 0xA1
|
|
L_CTRL = 162; // 0xA2
|
|
R_CTRL = 32875; // EXTENDED_KEY_FLAG | 0xA3
|
|
L_ALT = 164; // 0xA4
|
|
R_ALT = 32877; // EXTENDED_KEY_FLAG | 0xA5
|
|
|
|
// --- OEM Keys ---
|
|
SUB = 189; // 0xBD
|
|
ADD = 187; // 0xBB
|
|
TILDE = 192; // 0xC0
|
|
L_BRACKET = 219; // 0xDB
|
|
R_BRACKET = 221; // 0xDD
|
|
COMMA = 188; // 0xBC
|
|
PERIOD = 190; // 0xBE
|
|
QUOTE = 222; // 0xDE
|
|
COLON = 186; // 0xBA
|
|
SOL = 191; // 0xBF
|
|
B_SOL = 220; // 0xDC
|
|
} |