检测鼠标光标是否被任何其他应用程序隐藏或可见

我想检测鼠标是否隐藏,通常由Windows上的3D应用程序完成。 这似乎比听起来更棘手,因为我找不到任何方法来做到这一点。

最好我想用Python做这个,但如果这是不可能的,我可以诉诸C.感谢!

GetCursorInfo函数返回一个CURSORINFO结构,该结构具有包含全局光标状态的flags字段。 这会做你需要的吗? 我不熟悉Python,所以我不知道你是否可以从Python调用这个函数。

你需要调用GetCursorInfo函数。 这可以使用pywin32库直接完成。 或者,如果您不想安装外部Python库,则可以使用ctypes模块直接访问User32.dll中的函数。

例:

 import ctypes # Argument structures class POINT(ctypes.Structure): _fields_ = [('x', ctypes.c_int), ('y', ctypes.c_int)] class CURSORINFO(ctypes.Structure): _fields_ = [('cbSize', ctypes.c_uint), ('flags', ctypes.c_uint), ('hCursor', ctypes.c_void_p), ('ptScreenPos', POINT)] # Load function from user32.dll and set argument types GetCursorInfo = ctypes.windll.user32.GetCursorInfo GetCursorInfo.argtypes = [ctypes.POINTER(CURSORINFO)] # Initialize the output structure info = CURSORINFO() info.cbSize = ctypes.sizeof(info) # Call it if GetCursorInfo(ctypes.byref(info)): if info.flags & 0x00000001: pass # The cursor is showing else: pass # Error occurred (invalid structure size?)