无法在 Roblox 上移动鼠标

Posted

技术标签:

【中文标题】无法在 Roblox 上移动鼠标【英文标题】:can't move mouse on Roblox 【发布时间】:2021-12-25 07:06:12 【问题描述】:

我为此尝试了两个不同的库,但遇到了同样的问题。

pyautogui.moveTo(100,100)
pydirectinput.moveTo(100,100)

代码在 Roblox 之外运行良好,但每当我使用 Roblox 作为活动窗口运行它时,我必须稍微移动鼠标,让 python 移动到我想要的位置

【问题讨论】:

您可能需要手动设置/获取 roblox 为活动窗口。 嗯?我不明白你的评论我说当 Roblox 是活动窗口时会出现这个问题 我想说的是,Roblox 可能正在控制 python 的优先级。恕我直言,值得一试。 所以您不希望 Roblox 成为活动窗口?甚至不要认为如果 Roblox 不是活动窗口就可以自动化它 【参考方案1】:

我不会质疑你的动机......

import ctypes
from ctypes.wintypes import DWORD, WORD
from math import floor
emptyLong = ctypes.c_ulong()

class MouseInput(ctypes.Structure):
    _fields_ = [("dx", ctypes.c_long),
                ("dy", ctypes.c_long),
                ("mouseData", DWORD),
                ("dwFlags", DWORD),
                ("time", DWORD),
                ("dwExtraInfo", ctypes.POINTER(ctypes.c_ulong))]

class KeybdInput(ctypes.Structure):
    _fields_ = [("wVk", WORD),
                ("wScan", WORD),
                ("dwFlags", DWORD),
                ("time", DWORD),
                ("dwExtraInfo", ctypes.POINTER(ctypes.c_ulong))]

class HardwareInput(ctypes.Structure):
    _fields_ = [("uMsg", DWORD),
                ("wParamL", WORD),
                ("wParamH", WORD)]

class InputList(ctypes.Union):
    _fields_ = [
        ("mi", MouseInput),
        ("ki", KeybdInput),
        ("hi", HardwareInput)]

class Input(ctypes.Structure):
    _fields_ = [("type", ctypes.c_ulong),
                ("inputList", InputList)]

MOUSEEVENTF_MOVE = 0x0001
MOUSEEVENTF_ABSOLUTE = 0x8000
def move(x, y, relative=False): # MOVE MOUSE TO (X, Y)
    mouseFlag = MOUSEEVENTF_MOVE

    if not relative:
        mouseFlag |= MOUSEEVENTF_ABSOLUTE
        x = floor(x/1920 * 65535) # ASSUMING COORDINATES ARE BASED ON 1920 x 1080 RESOLUTION
        y = floor(y/1080 * 65535)
        
    inputList = InputList()
    inputList.mi = MouseInput(x, y, 0, mouseFlag, 0, ctypes.pointer(emptyLong))

    windowsInput = Input(emptyLong, inputList)
    ctypes.windll.user32.SendInput(1, ctypes.pointer(windowsInput), ctypes.sizeof(windowsInput))

只是一点点 C.Learn more

【讨论】:

以上是关于无法在 Roblox 上移动鼠标的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Roblox Studio 中解锁鼠标

为啥鼠标不能超过电脑屏幕的左,上边界,而能够超过

在 Android Studio 上移动鼠标指针

如何在Grid中响应鼠标移动事件

MFC如何让鼠标移动到按钮上马上改变鼠标形状为手型

Ubuntu 在登陆界面usb的键盘和鼠标上无法输入和移动(注明:与内核驱动有关系)