winipc-ua/Models/ipc.proto
2025-08-02 20:18:00 +03:00

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
}