#define _WIN32_WINNT 0x0500 #include "Windows.h" #include "SCENE.h" const int scanCode [] = { 30,48,46,32,18,33,34,35,23,36,37,38,50,49,24,25,16,19,31,20,22,47,17,45,21,44 }; void SendKeyMessage(DWORD code, int isScanCode, int isUp) { INPUT input; KEYBDINPUT keybInput; UINT result; BOOL letterCode = 0; BOOL numberCode = 0; memset(&keybInput, 0, sizeof(keybInput)); keybInput.dwFlags = KEYEVENTF_SCANCODE; if (isUp) keybInput.dwFlags |= KEYEVENTF_KEYUP; if (isScanCode) keybInput.wScan = code; else { if(code >= 'A' && code <= 'Z') { letterCode = 1; code -= 'A'; } if(code >= 'a' && code <= 'z') { letterCode = 1; code -= 'a'; } if(code >= '0' && code <= '9') { numberCode = 1; code -= '0'; } if (letterCode) keybInput.wScan = scanCode [code]; else { if (numberCode) keybInput.wScan = code+1; else return; } } /* keybInput.dwFlags = KEYEVENTF_UNICODE; keybInput.wScan = code; */ input.type = INPUT_KEYBOARD; input.ki = keybInput; result = SendInput(1, &input, sizeof(input)); if (result == 0) { DWORD err = GetLastError(); } } void SendMouseMessage(int x, int y, DWORD status) { INPUT input; MOUSEINPUT mouseInput; UINT result; memset(&mouseInput, 0, sizeof(mouseInput)); mouseInput.dx = x; mouseInput.dy = y; mouseInput.mouseData = XBUTTON1; if (status & 1) mouseInput.dwFlags = MOUSEEVENTF_XDOWN; if (status & 2) mouseInput.dwFlags = MOUSEEVENTF_XUP; mouseInput.dwFlags |= MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE; input.type = INPUT_MOUSE; input.mi = mouseInput; result = SendInput(1, &input, sizeof(input)); if (result == 0) { DWORD err = GetLastError(); } }