如何用Python检测Windows系统中鼠标按键是否已互换
如何用Python检测Windows系统中鼠标按键是否互换?
左利手用户常将Windows鼠标主键设为右键(互换左右按键),要检测这个设置,我们可以直接调用Windows系统API,和C++/C#的实现思路一致,核心是使用GetSystemMetrics函数。
实现代码
通过ctypes库调用Windows的user32.dll中的GetSystemMetrics接口:
import ctypes def are_mouse_buttons_swapped(): # SM_SWAPBUTTON 的常量值是 23 SM_SWAPBUTTON = 23 user32 = ctypes.WinDLL('user32', use_last_error=True) return user32.GetSystemMetrics(SM_SWAPBUTTON) == 1 # 测试调用 if __name__ == "__main__": if are_mouse_buttons_swapped(): print("鼠标按键已互换(左利手设置)") else: print("鼠标按键为默认设置(右键为次要按键)")
原理说明
GetSystemMetrics(SM_SWAPBUTTON)返回值为1时,表示鼠标左右按键已互换;返回0则为默认状态。- 这个API在Windows XP及之后的所有版本(包括Win10、Win11)都能正常工作,兼容性良好。
相关实现参考
已有对应的C++和C#实现方案,核心逻辑都是调用同一个Windows API:
- C#:读取Windows系统的惯用手设置
- C++:检查鼠标按键是否互换
内容的提问来源于stack exchange,提问作者Al Sweigart
相关产品推荐
相关产品推荐

