Mausklick systemweit abfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
horald
User
Beiträge: 14
Registriert: Dienstag 28. April 2020, 09:10

Hallo zusammen,

ich suche nach einem Python Beispielprogramm, wo ich einen Mausklick abfragen kann. Ich möchte die Maus quasi als Aktionstaste missbrauchen, womit ich ein function starten kann. In etwa so:

if mouseclicked()==True:
tue_etwas()

Wichtig ist, dass es nicht an ein Canvas oder Fenster gebunden ist. Es soll auch funktionieren, wenn das Fenster minimiert ist. Hat jemand eine Idee? Vielen Dank.

Viele Grüße

Horst
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ohne Angabe um welches Betriebssystem es sich hier handelt, ist das unnoetig schwer zu beantworten.
horald
User
Beiträge: 14
Registriert: Dienstag 28. April 2020, 09:10

Hallo Leute,

ich muss leider nochmal etwas fragen. Die Abfrage der Maustaste klappt jetzt prima, aber leider springt das Programm direkt raus, wenn ich die Maus gedrückt habe. Ich möchte das Programm aber in einer Endlosschleife laufen lassen, so dass es nur beendet wird wenn ich die rechte Maustaste drücke oder Strg-C drücke:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding:utf-8 -*-

from pymouse import PyMouseEvent

def tu_was():
  print("*** tu was ***")
 

class mausanklicken(PyMouseEvent):
  def __init__(self):
    PyMouseEvent.__init__(self)
    print("Programm gestartet...")

  def click(self, x, y, button, press):
    if button == 1:
      if press:
        tu_was()

      else:  # Exit if any other mouse button used
        self.stop()
        exit()

mausclass = mausanklicken()
mausclass.run()
Der Mouse-Event ist bei Windows, Linux, MacOS usw. immer gleich, warum sollte python da Unterschied je Betriebssystem machen? Dann könnte man es ja nicht mehr Betriebssystemübegreifen programmieren... Das nur am Rande.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du dein Programm dauerhaft laufen lassen willst, warum hast du es dann so programmiert, das es sich selbst beendet? Lass das doch einfach. Nur mal so am Rande.
Benutzeravatar
__blackjack__
User
Beiträge: 14005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@horald: ”Das” Maus-Event ist auf jedem System anders, darum *muss* man da einen Unterschied je Betriebssystem machen. Und genau das wird `pymouse` machen. Ein Modul das nicht zur Standardbibliothek gehört und von dem niemand ausser Dir wusste das Du es verwendest. Darum kam halt die Frage für welches Betriebssystem das gemacht werden soll.

Das Modul wird anscheinend nicht mehr gepflegt. Auf der Github-Seite wird auf PyUserInput verwiesen, dass den Code übernommen hat.

Entweder ist das ``else`` falsch eingerückt oder der Kommentar falsch. Beides zusammen kann nicht stimmen.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten