=== .\debug_harness\test_attach_thread_wasd.py (2 matches) === L 45 [keybd_event]: user32.keybd_event(VK_W, SC_W, 0, 0) L 51 [keybd_event]: user32.keybd_event(VK_W, SC_W, 2, 0) === .\debug_harness\test_real_wasd_sendinput.py (3 matches) === L 45 [SendInput]: ctypes.windll.user32.SendInput(1, ctypes.byref(inp_down), ctypes.sizeof(INPUT)) L 55 [SendInput]: ctypes.windll.user32.SendInput(1, ctypes.byref(inp_up), ctypes.sizeof(INPUT)) L 60 [SendInput]: print("Sending W keydown via SendInput for 0.8s on window desktop...") === .\debug_harness\test_wasd_movement.py (2 matches) === L 28 [keybd_event]: user32.keybd_event(VK_W, SC_W, 0, 0) L 32 [keybd_event]: user32.keybd_event(VK_W, SC_W, 2, 0) === .\scratch\scan_input_calls.py (4 matches) === L 4 [keybd_event]: r'keybd_event', L 5 [SendInput]: r'SendInput', L 6 [mouse_event]: r'mouse_event', L 7 [SetCursorPos]: r'SetCursorPos', === .\scratch_test_sendinput.py (1 matches) === L 14 [SendInput]: res = u.SendInput(1, ctypes.byref(inp), ctypes.sizeof(INPUT)) === .\scripts\check_inventory_live.py (2 matches) === L 24 [keybd_event]: user32.keybd_event(VK_I, 0x17, 0, 0) L 26 [keybd_event]: user32.keybd_event(VK_I, 0x17, KEYEVENTF_KEYUP, 0) === .\scripts\click_checkpoint.py (5 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(x, y) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_endgame_exact.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_exact_label.py (5 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(x, y) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_exit_char_selection.py (5 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1280, 435) L 24 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 26 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 34 [keybd_event]: user32.keybd_event(VK_RETURN, 0x1C, 0, 0) L 36 [keybd_event]: user32.keybd_event(VK_RETURN, 0x1C, 0x0002, 0) === .\scripts\click_hideout_icon.py (5 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(x, y) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_highlighted_portal.py (5 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1280, 212) L 24 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 26 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 28 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 30 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_map_device.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(1280, 400) L 25 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) # MOUSEEVENTF_LEFTDOWN L 27 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) # MOUSEEVENTF_LEFTUP === .\scripts\click_map_device_label.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(1360, 386) L 25 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_map_exit_portal.py (3 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1420, 520) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_nearby_portal.py (5 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1460, 360) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 32 [keybd_event]: user32.keybd_event(0x46, 0x21, 0, 0) L 34 [keybd_event]: user32.keybd_event(0x46, 0x21, 0x0002, 0) === .\scripts\click_portal.py (3 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1700, 310) L 25 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_portal_1520.py (3 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1520, 380) L 26 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 28 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_resume.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_return_portal.py (5 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(x, y) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\click_steppe_label.py (5 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(x, y) L 25 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) # MOUSEEVENTF_MOVE L 27 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 30 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) # LEFTDOWN L 32 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) # LEFTUP === .\scripts\hover_portal.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(1280, 428) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) === .\scripts\hover_scroll.py (5 matches) === L 23 [keybd_event]: user32.keybd_event(VK_I, 0x17, 0, 0) L 25 [keybd_event]: user32.keybd_event(VK_I, 0x17, KEYEVENTF_KEYUP, 0) L 29 [SetCursorPos]: user32.SetCursorPos(1871, 1102) L 31 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 33 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) === .\scripts\press_portal_key.py (2 matches) === L 23 [keybd_event]: user32.keybd_event(VK_OEM_PERIOD, 0x34, 0, 0) L 25 [keybd_event]: user32.keybd_event(VK_OEM_PERIOD, 0x34, KEYEVENTF_KEYUP, 0) === .\scripts\press_u.py (2 matches) === L 23 [keybd_event]: user32.keybd_event(VK_U, 0x16, 0, 0) L 25 [keybd_event]: user32.keybd_event(VK_U, 0x16, KEYEVENTF_KEYUP, 0) === .\scripts\return_to_hideout.py (5 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(x, y) L 23 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 29 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\return_to_hideout_via_charselect.py (2 matches) === L 23 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 25 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\send_exit.py (2 matches) === L 24 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 26 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\send_slash_hideout.py (2 matches) === L 23 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 25 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\step1_return_to_hideout.py (5 matches) === L 38 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 40 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 42 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 46 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 48 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\step2_activate_and_enter_map2.py (5 matches) === L 81 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 83 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 85 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 89 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 91 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\step_into_portal.py (9 matches) === L 24 [SetCursorPos]: user32.SetCursorPos(x, y) L 26 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 28 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 30 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 32 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 36 [keybd_event]: user32.keybd_event(VK_W, 0x11, 0, 0) L 37 [keybd_event]: user32.keybd_event(VK_D, 0x20, 0, 0) L 39 [keybd_event]: user32.keybd_event(VK_W, 0x11, KEYEVENTF_KEYUP, 0) L 40 [keybd_event]: user32.keybd_event(VK_D, 0x20, KEYEVENTF_KEYUP, 0) === .\scripts\step_into_portal_live.py (7 matches) === L 25 [keybd_event]: user32.keybd_event(VK_D, 0x20, 0, 0) L 27 [keybd_event]: user32.keybd_event(VK_D, 0x20, KEYEVENTF_KEYUP, 0) L 32 [SetCursorPos]: user32.SetCursorPos(1580, 620) L 34 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 36 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 38 [keybd_event]: user32.keybd_event(VK_F, 0x21, 0, 0) L 40 [keybd_event]: user32.keybd_event(VK_F, 0x21, KEYEVENTF_KEYUP, 0) === .\scripts\test_async_keystate.py (2 matches) === L 15 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 0, 0) L 17 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 2, 0) === .\scripts\test_click_endgame.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_endgame_live.py (3 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1563, 95) L 24 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 26 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_md_1170.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_node.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_node_live.py (3 matches) === L 22 [SetCursorPos]: user32.SetCursorPos(1159, 764) L 24 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 26 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_reachable.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_click_shifted_node.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_full_atlas_flow.py (5 matches) === L 25 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 27 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) L 31 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 33 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 35 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_hotkey_on_default.py (3 matches) === L 22 [keybd_event]: # Simulate F9 press via keybd_event on Default desktop L 24 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 0, 0) L 26 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 2, 0) === .\scripts\test_hotkey_thread.py (2 matches) === L 27 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 0, 0) L 29 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 2, 0) === .\scripts\test_hover_map_device.py (3 matches) === L 24 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, 0, 0) L 26 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, KEYEVENTF_KEYUP, 0) L 31 [SetCursorPos]: user32.SetCursorPos(608, 585) === .\scripts\test_interact_map_device.py (9 matches) === L 26 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, 0, 0) L 28 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, KEYEVENTF_KEYUP, 0) L 33 [keybd_event]: user32.keybd_event(VK_A, 0x1E, 0, 0) L 35 [keybd_event]: user32.keybd_event(VK_A, 0x1E, KEYEVENTF_KEYUP, 0) L 40 [SetCursorPos]: user32.SetCursorPos(580, 650) L 42 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 44 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 46 [keybd_event]: user32.keybd_event(VK_F, 0x21, 0, 0) L 48 [keybd_event]: user32.keybd_event(VK_F, 0x21, KEYEVENTF_KEYUP, 0) === .\scripts\test_live_atlas_traverse.py (5 matches) === L 28 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 30 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) L 34 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 36 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 38 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_msg_window_hotkey.py (2 matches) === L 51 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 0, 0) L 53 [keybd_event]: ctypes.windll.user32.keybd_event(VK_F9, 0, 2, 0) === .\scripts\test_node_and_inv.py (5 matches) === L 23 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 25 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 27 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 31 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 33 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) === .\scripts\test_open_and_click_node.py (5 matches) === L 28 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 30 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) L 34 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 36 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 38 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_open_map_device.py (7 matches) === L 25 [keybd_event]: user32.keybd_event(VK_A, 0x1E, 0, 0) L 27 [keybd_event]: user32.keybd_event(VK_A, 0x1E, KEYEVENTF_KEYUP, 0) L 33 [SetCursorPos]: user32.SetCursorPos(1280, 680) L 35 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 37 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 39 [keybd_event]: user32.keybd_event(VK_F, 0x21, 0, 0) L 41 [keybd_event]: user32.keybd_event(VK_F, 0x21, KEYEVENTF_KEYUP, 0) === .\scripts\test_switch_endgame.py (3 matches) === L 21 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 23 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 25 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_traverse_live.py (5 matches) === L 26 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 28 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) L 32 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 34 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 36 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\test_u.py (2 matches) === L 23 [keybd_event]: user32.keybd_event(VK_U, 0x16, 0, 0) L 25 [keybd_event]: user32.keybd_event(VK_U, 0x16, KEYEVENTF_KEYUP, 0) === .\scripts\test_u_and_endgame.py (5 matches) === L 23 [keybd_event]: user32.keybd_event(vk, scan, 0, 0) L 25 [keybd_event]: user32.keybd_event(vk, scan, KEYEVENTF_KEYUP, 0) L 29 [SetCursorPos]: user32.SetCursorPos(int(x), int(y)) L 31 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 33 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\walk_and_click_portal.py (7 matches) === L 24 [keybd_event]: user32.keybd_event(VK_W, 0x11, 0, 0) L 26 [keybd_event]: user32.keybd_event(VK_W, 0x11, KEYEVENTF_KEYUP, 0) L 31 [SetCursorPos]: user32.SetCursorPos(1280, 400) L 33 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 35 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 37 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 39 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\walk_into_portal_exact.py (9 matches) === L 25 [keybd_event]: user32.keybd_event(VK_D, 0x20, 0, 0) L 26 [keybd_event]: user32.keybd_event(VK_W, 0x11, 0, 0) L 28 [keybd_event]: user32.keybd_event(VK_D, 0x20, KEYEVENTF_KEYUP, 0) L 29 [keybd_event]: user32.keybd_event(VK_W, 0x11, KEYEVENTF_KEYUP, 0) L 34 [SetCursorPos]: user32.SetCursorPos(1430, 265) L 36 [mouse_event]: user32.mouse_event(0x0001, 1, 0, 0, 0) L 38 [mouse_event]: user32.mouse_event(0x0001, -1, 0, 0, 0) L 40 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 42 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) === .\scripts\walk_sw_to_portal.py (6 matches) === L 25 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, 0, 0) L 27 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, KEYEVENTF_KEYUP, 0) L 32 [keybd_event]: user32.keybd_event(VK_S, 0x1F, 0, 0) L 33 [keybd_event]: user32.keybd_event(VK_A, 0x1E, 0, 0) L 35 [keybd_event]: user32.keybd_event(VK_S, 0x1F, KEYEVENTF_KEYUP, 0) L 36 [keybd_event]: user32.keybd_event(VK_A, 0x1E, KEYEVENTF_KEYUP, 0) === .\scripts\walk_to_map_device.py (4 matches) === L 24 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, 0, 0) L 26 [keybd_event]: user32.keybd_event(VK_SPACE, 0x39, KEYEVENTF_KEYUP, 0) L 30 [keybd_event]: user32.keybd_event(VK_W, 0x11, 0, 0) L 32 [keybd_event]: user32.keybd_event(VK_W, 0x11, KEYEVENTF_KEYUP, 0) === .\scripts\walk_to_portal_and_enter.py (7 matches) === L 27 [keybd_event]: user32.keybd_event(vk, 0, 0, 0) L 30 [keybd_event]: user32.keybd_event(vk, 0, KEYEVENTF_KEYUP, 0) L 38 [SetCursorPos]: user32.SetCursorPos(1500, 400) L 40 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) L 42 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) L 45 [keybd_event]: user32.keybd_event(VK_F, 0x21, 0, 0) L 47 [keybd_event]: user32.keybd_event(VK_F, 0x21, KEYEVENTF_KEYUP, 0) === .\src\assistant_tool\item_hover_watcher.py (5 matches) === L 6 [keybd_event]: - Gửi xung Ctrl+C an toàn qua keybd_event. L 159 [keybd_event]: win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0) L 160 [keybd_event]: win32api.keybd_event(ord("C"), 0, 0, 0) L 162 [keybd_event]: win32api.keybd_event(ord("C"), 0, win32con.KEYEVENTF_KEYUP, 0) L 163 [keybd_event]: win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0) === .\src\assistant_tool\stash\stash_item_matrix.py (4 matches) === L 303 [keybd_event]: user32.keybd_event(VK_CONTROL, 0x1D, 0, 0) L 305 [keybd_event]: user32.keybd_event(VK_C, 0x2E, 0, 0) L 307 [keybd_event]: user32.keybd_event(VK_C, 0x2E, 0x0002, 0) L 308 [keybd_event]: user32.keybd_event(VK_CONTROL, 0x1D, 0x0002, 0) === .\src\assistant_tool\waystone_loader_guard.py (8 matches) === L 68 [SendInput]: Hỗ trợ cả chế độ Foreground Win32 SendInput/mouse_event lẫn Background PostMessageW. L 68 [mouse_event]: Hỗ trợ cả chế độ Foreground Win32 SendInput/mouse_event lẫn Background PostMessageW. L 80 [SetCursorPos]: user32.SetCursorPos(int(screen_x), int(screen_y)) L 84 [keybd_event]: user32.keybd_event(cls.VK_CONTROL, cls.SC_CONTROL, 0, 0) L 88 [SetCursorPos]: user32.SetCursorPos(int(screen_x), int(screen_y)) L 91 [mouse_event]: user32.mouse_event(cls.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) L 95 [mouse_event]: user32.mouse_event(cls.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) L 99 [keybd_event]: user32.keybd_event(cls.VK_CONTROL, cls.SC_CONTROL, cls.KEYEVENTF_KEYUP, 0) === .\src\common\win32_input.py (26 matches) === L 241 [SendInput]: _user32.SendInput.argtypes = [wintypes.UINT, ctypes.c_void_p, ctypes.c_int] L 242 [SendInput]: _user32.SendInput.restype = wintypes.UINT L 246 [SendInput]: """Gửi sự kiện phím phần cứng qua Win32 SendInput (DirectInput & Raw Input compliant).""" L 264 [SendInput]: _user32.SendInput(n, input_arr, ctypes.sizeof(INPUT)) L 288 [SetCursorPos]: return bool(_user32.SetCursorPos(int(round(x)), int(round(y)))) L 333 [mouse_event]: _user32.mouse_event(down_flag, 0, 0, 0, 0) L 336 [mouse_event]: _user32.mouse_event(up_flag, 0, 0, 0, 0) L 372 [mouse_event]: _user32.mouse_event(down_flag, 0, 0, 0, 0) L 379 [mouse_event]: _user32.mouse_event(up_flag, 0, 0, 0, 0) L 388 [mouse_event]: _user32.mouse_event(MOUSEEVENTF_MOVE, dx, dy, 0, 0) L 393 [mouse_event]: _user32.mouse_event(up_flag, 0, 0, 0, 0) L 404 [keybd_event]: _user32.keybd_event(vk, sc, KEYEVENTF_KEYUP, 0) L 426 [keybd_event]: _user32.keybd_event(VK_CONTROL, SC_CONTROL, 0, 0) L 429 [keybd_event]: _user32.keybd_event(VK_CONTROL, SC_CONTROL, KEYEVENTF_KEYUP, 0) L 460 [keybd_event]: _user32.keybd_event(vk, actual_scan, 0, 0) L 467 [keybd_event]: _user32.keybd_event(vk, actual_scan, KEYEVENTF_KEYUP, 0) L 569 [keybd_event]: _user32.keybd_event(vk, sc, 0, 0) L 586 [keybd_event]: _user32.keybd_event(vk, sc, KEYEVENTF_KEYUP, 0) L 597 [mouse_event]: _user32.mouse_event(MOUSEEVENTF_WHEEL, 0, 0, wheel_amount, 0) L 615 [keybd_event]: _user32.keybd_event(vk, sc, KEYEVENTF_KEYUP, 0) L 617 [mouse_event]: _user32.mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) L 618 [mouse_event]: _user32.mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) L 696 [keybd_event]: Tự động kích hoạt trạng thái phím VK_CONTROL qua keybd_event trong thời gian cực ngắn (~40ms) L 703 [keybd_event]: # 1. Kích hoạt trạng thái phím VK_CONTROL (chỉ dùng keybd_event nếu game đang có Focus để không ảnh L 706 [keybd_event]: _user32.keybd_event(VK_CONTROL, SC_CONTROL, 0, 0) L 724 [keybd_event]: _user32.keybd_event(VK_CONTROL, SC_CONTROL, KEYEVENTF_KEYUP, 0) === .\tests\test_autonomous_mapping_coordinator.py (11 matches) === L 151 [mouse_event]: with patch("ctypes.windll.user32.mouse_event") as mock_mouse_event, patch("time.sleep"): L 163 [mouse_event]: assert mock_mouse_event.call_count >= 8 L 177 [mouse_event]: with patch("ctypes.windll.user32.mouse_event"), patch("time.sleep"): L 200 [mouse_event]: with patch("ctypes.windll.user32.mouse_event") as mock_mouse_event: L 202 [mouse_event]: assert mock_mouse_event.call_count == 4 L 203 [mouse_event]: mock_mouse_event.assert_called_with(0x0800, 0, 0, 120, 0) L 205 [mouse_event]: mock_mouse_event.reset_mock() L 207 [mouse_event]: assert mock_mouse_event.call_count == 4 L 208 [mouse_event]: mock_mouse_event.assert_called_with(0x0800, 0, 0, -120, 0) L 245 [mouse_event]: with patch("ctypes.windll.user32.mouse_event"): L 356 [mouse_event]: with patch("ctypes.windll.user32.mouse_event"), patch("time.sleep"): === .\tests\test_coordinator_stage5_6_integration.py (1 matches) === L 268 [keybd_event]: with patch("ctypes.windll.user32.keybd_event") as mock_keybd, \ === .\tests\test_fault_injection_resilience.py (3 matches) === L 173 [keybd_event]: def mock_keybd_event(vk, scan, flags, extra): L 178 [keybd_event]: with patch("ctypes.windll.user32.keybd_event", side_effect=mock_keybd_event): L 179 [mouse_event]: with patch("ctypes.windll.user32.mouse_event") as mock_mouse: === .\tests\test_focus_interlock.py (14 matches) === L 107 [keybd_event]: @patch("src.common.win32_input._user32.keybd_event") L 115 [keybd_event]: assert len(down_calls) == 0, f"Phát hiện gọi keybd_event nhấn xuống khi unfocused: {down_calls}" L 118 [keybd_event]: @patch("src.common.win32_input._user32.keybd_event") L 129 [keybd_event]: @patch("src.common.win32_input._user32.keybd_event") L 131 [keybd_event]: """Khi game unfocused, press_key từ chối gọi keybd_event.""" L 137 [keybd_event]: @patch("src.common.win32_input._user32.keybd_event") L 139 [keybd_event]: """Khi game focused, press_key gọi keybd_event bình thường.""" L 146 [mouse_event]: @patch("src.common.win32_input._user32.mouse_event") L 148 [mouse_event]: """Khi game unfocused, click từ chối gọi mouse_event.""" L 155 [mouse_event]: @patch("src.common.win32_input._user32.mouse_event") L 164 [mouse_event]: @patch("src.common.win32_input._user32.mouse_event") L 172 [keybd_event]: @patch("src.common.win32_input._user32.keybd_event") L 182 [keybd_event]: with patch("src.common.win32_input._user32.keybd_event") as mock_keybd: L 189 [keybd_event]: with patch("src.common.win32_input._user32.keybd_event") as mock_keybd: === .\tests\test_live_sentinel.py (4 matches) === L 56 [keybd_event]: with patch("ctypes.windll.user32.keybd_event") as mock_keybd: L 57 [mouse_event]: with patch("ctypes.windll.user32.mouse_event") as mock_mouse: L 69 [keybd_event]: assert mock_keybd.call_count == 0, "VI PHẠM NGUYÊN TẮC THỤ ĐỘNG: keybd_event bị gọi!" L 70 [mouse_event]: assert mock_mouse.call_count == 0, "VI PHẠM NGUYÊN TẮC THỤ ĐỘNG: mouse_event bị gọi!" === .\tests\test_waystone_loader_guard.py (9 matches) === L 24 [SetCursorPos]: @patch("ctypes.windll.user32.SetCursorPos") L 25 [keybd_event]: @patch("ctypes.windll.user32.keybd_event") L 26 [mouse_event]: @patch("ctypes.windll.user32.mouse_event") L 27 [keybd_event]: def test_crisp_ctrl_click_mocked_sequence(self, mock_mouse_event, mock_keybd_event, mock_set_cursor) L 27 [mouse_event]: def test_crisp_ctrl_click_mocked_sequence(self, mock_mouse_event, mock_keybd_event, mock_set_cursor) L 43 [keybd_event]: assert mock_keybd_event.call_count >= 2 L 45 [mouse_event]: assert mock_mouse_event.call_count >= 2 L 46 [mouse_event]: mock_mouse_event.assert_any_call(WaystoneLoaderGuard.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) L 47 [mouse_event]: mock_mouse_event.assert_any_call(WaystoneLoaderGuard.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) === .\tools\autonomous_mapping_coordinator.py (1 matches) === L 799 [mouse_event]: user32.mouse_event(MOUSEEVENTF_WHEEL, 0, 0, delta, 0) === .\tools\bind_move_skill.py (3 matches) === L 28 [SetCursorPos]: user32.SetCursorPos(2037, 1354) L 30 [mouse_event]: user32.mouse_event(0x0002, 0, 0, 0, 0) # LEFTDOWN L 32 [mouse_event]: user32.mouse_event(0x0004, 0, 0, 0, 0) # LEFTUP