
Я пытаюсь контролировать абсолютное положение моей мыши с помощью неподвижного двухосевогоджойстик. Я хочу, чтобы это работало на Windows 7. Я уже перепробовал много разных программ,
- jmouse
- Xpadder
- Джоймаус
- радость 2 мышь
Мышь Joy 2 пока работает для меня лучше всего, так как я могу управлять осями X и Y с помощью абсолютного положения джойстика, но я столкнулся с двумя проблемами
- мышь иногда заикается, даже когда я не двигаю джойстик
- Я могу только задать «ось 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
цикле событий.