使用操纵杆窗口控制鼠标

使用操纵杆窗口控制鼠标

我尝试使用固定双轴来控制鼠标的绝对位置操纵杆。我希望在 Windows 7 上运行它。我已经尝试了许多不同的程序

  • 鼠标
  • 西帕德
  • 欢乐鼠
  • 快乐2鼠标

到目前为止,joy 2 鼠标对我来说效果最好,因为我可以用操纵杆的绝对位置控制 x 轴和 y 轴,但我遇到了 2 个问题

  1. 鼠标有时会卡顿,即使我没有移动操纵杆
  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事件循环。

相关内容