windows - Oprettelse af en mus rulle begivenhed ved hjælp af python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg fandt dette, Controlling Mouse med Python, spørgsmålstegn virkelig hjælpsomme til at oprette et script til at flytte musen og klikke musen ved hjælp af Python. Er det muligt at oprette en mus rulle begivenhed også? Hvad med frem og tilbage knappen?

Bedste reference


Bare for 'sen' seere, ville dette kræve, at du ændrer det fjerde argument dwData ...
Jeg synes det ville se sådan ud:


import win32api
from win32con import *

#Scroll one up
win32api.mouse\_event(MOUSEEVENTF\_WHEEL, x, y, 1, 0)

#Scroll one down
win32api.mouse\_event(MOUSEEVENTF\_WHEEL, x, y, -1, 0)

#Scroll one to the right
win32api.mouse\_event(MOUSEEVENTF\_HWHEEL, x, y, 1, 0)

#Scroll one to the left
win32api.mouse\_event(MOUSEEVENTF\_HWHEEL, x, y, -1, 0)




Mere information? Win-api docs er virkelig gode:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260\%28v=vs.85\%29.aspx[6]

Andre referencer 1


Dette gøres meget lettere med pygame-pakken. Du skal sikre dig, at du har pakken pygame installeret i dit python bibliotek. For at downloade det, klik på linket:


http://www.pygame.org/download.shtml[7]


Det skal se sådan ud:


import pygame

pygame.init()

def main():
    While true:
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    print ("You pressed the left mouse button.")

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K\_ESCAPE:
                    pygame.quit()
                    quit()

main()


Når du kører ovenstående kode, vil det fortælle dig, at du har trykket på venstre museknap, når venstre museknap trykkes. Tryk på Esc for at stoppe det, når du er færdig. Denne metode lagrer en liste over begivenheder og tester dem i den rækkefølge, de fandt sted. Hvis det finder en, der blev trykket, vil den køre koden, der følger den, i if-sætningen og derefter fjerne den fra listen.


For at bruge rullehjulet skal du bare erstatte nummer 1 på linjen:


if event.button == 1:


Udskift det med 4 for at rulle frem og 5 for at rulle tilbage.

Andre referencer 2


For at generere rullehændelser skal du bruge mouse\_event-metoden med MOUSEEVENTF\_WHEEL. til andre begivenheder, f.eks. frem/tilbage-knap, det afhænger af, hvordan musen er oprettet, og hvilken knap vil udløse den. se msdn-dokumentet herom for en liste over mulige værdier. [8]