我尝试使用固定双轴来控制鼠标的绝对位置操纵杆。我希望在 Windows 7 上运行它。我已经尝试了许多不同的程序
- 鼠标
- 西帕德
- 欢乐鼠
- 快乐2鼠标
到目前为止,joy 2 鼠标对我来说效果最好,因为我可以用操纵杆的绝对位置控制 x 轴和 y 轴,但我遇到了 2 个问题
- 鼠标有时会卡顿,即使我没有移动操纵杆
- 我只能设置“向上 y 轴”和“向下 y 轴”,以便在操纵杆的根位置周围有一个小角度,不应用鼠标移动。
对于我来说它也会起作用,如果有人知道一种可靠的方法来获取这个操纵杆的精确位置(在 win7 上),那么我就可以自己设置鼠标的位置。
操纵杆不精确是由软件引起的。我在 Mac 上安装了相同的硬件,运行正常。
答案1
python
我自己找到了一个解决方案,即使用pygame
和处理操纵杆事件和鼠标位置win32api
import pygame, sys,os
import win32api, win32con
from win32api import GetSystemMetrics
from pygame.locals import *
width = GetSystemMetrics (0)
height = GetSystemMetrics (1)
pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick(0)
joystick = joystick.init()
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)
else:
if event.type == 7:
if event.axis==0:
a = (event.value + 1)/2
x,y = win32api.GetCursorPos()
win32api.SetCursorPos((x,int(a*height)))
elif event.axis==2:
a = (event.value + 1)/2
x, y = win32api.GetCursorPos()
win32api.SetCursorPos((int(a*width),y))
这可能不是适合所有人的解决方案,因为它需要编译,并且需要包含所有依赖项。但通过这种方式,可以非常精确地控制所有鼠标事件。这是一个很小的代码片段,非常简单。它基于简单的pygame
事件循环。