|
マウスやキーボードを自動で動かす |
|
#define MOUSE_EVENT_X(x) ((DWORD)x * WORD(-1) / ::GetSystemMetrics(SM_CXSCREEN)) #define MOUSE_EVENT_Y(y) ((DWORD)y * WORD(-1) / ::GetSystemMetrics(SM_CYSCREEN)) // マウスの移動 mouse_event( MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, MOUSE_EVENT_X(nPosX), MOUSE_EVENT_X(nPosY), 0, 0 ); // マウスの左クリック mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Sleep(10); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); |
|
#define _WIN32_WINNT 0x0500 |
|
INPUT input[] = { { INPUT_MOUSE, 0, 65535, 0, MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 0, 0 }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTDOWN, 0, 0, }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTUP, 0, 0, }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_LEFTDOWN, 0, 0, }, { INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_LEFTUP, 0, 0, }, }; ::SendInput(5, input, sizeof(INPUT)); |
|
typedef struct tagINPUT { DWORD type; // 入力タイプ union { MOUSEINPUT mi; // マウスイベント用データ KEYBOARDINPUT ki; // キーボードイベント用データ HARDWAREINPUT hi; // ハードウェアイベント用データ(詳細不明) }; } INPUT, *PINPUT; |
|
INPUT_MOUSE マウスイベントを発生させます INPUT_KEYBOARD キーボードイベントを発生させます INPUT_HARDWARE ハードウェアイベントを発生させます(詳細不明) |
|
typedef struct tagMOUSEINPUT { LONG dx; // マウスの絶対/相対座標(dwFlags で変化) LONG dy; DWORD mouseData; // ホイールの移動(dwFlags = MOUSEEVENTF_WHEEL の時) DWORD dwFlags; // マウスの動作を指定するフラグ DWORD time; // タイムスタンプ。単位は ms (詳細不明) ULONG_PTR dwExtraInfo; // 32 ビットの追加情報 } MOUSEINPUT, *PMOUSEINPUT; |
|
typedef struct tagKEYBDINPUT { WORD wVk; // 仮想キーコード WORD wScan; // ハードウェアスキャンコード DWORD dwFlags; // キーボードの動作を指定するフラグ DWORD time; // タイムスタンプ。単位は ms (詳細不明) ULONG_PTR dwExtraInfo; // 32 ビットの追加情報 } KEYBDINPUT, *PKEYBDINPUT; |