import ctypes
import dxcam_cpp as dxcam
SendInput = ctypes.windll.user32.SendInput
INPUT_MOUSE = 0
MOUSEEVENTF_LEFTDOWN = 0x0002
MOUSEEVENTF_LEFTUP = 0x0004
class MOUSEINPUT(ctypes.Structure):
_fields_ = [("dx", ctypes.c_long),
("dy", ctypes.c_long),
("mouseData", ctypes.c_ulong),
("dwFlags", ctypes.c_ulong),
("time", ctypes.c_ulong),
("dwExtraInfo", ctypes.POINTER(ctypes.c_ulong))]
class INPUT(ctypes.Structure):
_fields_ = [("type", ctypes.c_ulong),
("mi", MOUSEINPUT)]
def send_click():
inp = INPUT(INPUT_MOUSE, MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTDOWN, 0, None))
SendInput(1, ctypes.byref(inp), ctypes.sizeof(inp))
inp = INPUT(INPUT_MOUSE, MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTUP, 0, None))
SendInput(1, ctypes.byref(inp), ctypes.sizeof(inp))
WIDTH, HEIGHT = 3840, 2160
mx, my = WIDTH // 2, HEIGHT // 2
TARGET_B, TARGET_G, TARGET_R = 230, 55, 55
camera = dxcam.create(
device_idx=0,
region=(mx, my, mx + 1, my + 1)
)
last_is_red = False
while True:
frame = camera.grab()
if frame is None:
continue
b, g, r = frame[0, 0]
cur_is_red = (b == TARGET_B and g == TARGET_G and r == TARGET_R)
if last_is_red and not cur_is_red:
send_click()
print("点击触发")
last_is_red = cur_is_red
import dxcam_cpp as dxcam
SendInput = ctypes.windll.user32.SendInput
INPUT_MOUSE = 0
MOUSEEVENTF_LEFTDOWN = 0x0002
MOUSEEVENTF_LEFTUP = 0x0004
class MOUSEINPUT(ctypes.Structure):
_fields_ = [("dx", ctypes.c_long),
("dy", ctypes.c_long),
("mouseData", ctypes.c_ulong),
("dwFlags", ctypes.c_ulong),
("time", ctypes.c_ulong),
("dwExtraInfo", ctypes.POINTER(ctypes.c_ulong))]
class INPUT(ctypes.Structure):
_fields_ = [("type", ctypes.c_ulong),
("mi", MOUSEINPUT)]
def send_click():
inp = INPUT(INPUT_MOUSE, MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTDOWN, 0, None))
SendInput(1, ctypes.byref(inp), ctypes.sizeof(inp))
inp = INPUT(INPUT_MOUSE, MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTUP, 0, None))
SendInput(1, ctypes.byref(inp), ctypes.sizeof(inp))
WIDTH, HEIGHT = 3840, 2160
mx, my = WIDTH // 2, HEIGHT // 2
TARGET_B, TARGET_G, TARGET_R = 230, 55, 55
camera = dxcam.create(
device_idx=0,
region=(mx, my, mx + 1, my + 1)
)
last_is_red = False
while True:
frame = camera.grab()
if frame is None:
continue
b, g, r = frame[0, 0]
cur_is_red = (b == TARGET_B and g == TARGET_G and r == TARGET_R)
if last_is_red and not cur_is_red:
send_click()
print("点击触发")
last_is_red = cur_is_red