Hallo,
Ich versuche ein python pogramm auf ubutu mate im hintergund laufen zu lassen...
Das pogramm benutzt gpio und simuliert dem input entsprechend tastatur Eingabe (pfeiltasten)
Wenn ich diese pogramm jetzt in den Hintergund stelle funktioniert es nicht mehr! Ich benutze die Bibliotheken zerogpio und pyautogui.
Ich bin anfänger in python und hoffe mir das mir hier jemand helfen könnte!
Danke im vorraus,
Fischchen
Python im Hintergrund
Statt pyautogui solltest du das hier zb verwenden: https://python-libevdev.readthedocs.io/en/latest/
Tut mir leid ich bin leider absoluter anfänger. Hättest du eine Quelle für tips dazu oder so?__deets__ hat geschrieben: Mittwoch 12. Februar 2020, 09:36 Statt pyautogui solltest du das hier zb verwenden: https://python-libevdev.readthedocs.io/en/latest/
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Warum was verwenden was root-Rechte braucht?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- noisefloor
- User
- Beiträge: 4193
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Vielleicht solltest du nochmal dein Konzept überdenken. Wenn es so funktionieren würde, wie du es dir vorstellst, würdest du z.B. den Cursor in LibreOffice im Textdokument bewegen _und_ den Programm würde reagieren. Nicht unmöglich aber ungewöhnlich.
@__blackjack__ : wie würde man denn ohne low-level Zugriff / Root-Rechte an Tasturevents kommen, wenn das Programm nicht den Fokus hat?
Gruß, noisefloor
Wenn ein Programm - egal welches - im Hintergrund läuft hat es normalerweise keine Zugriff auf die Tastatur. Das geht "nur" an das aktive Fenster / Programm - was ja schon sinnvoll ist.Ich versuche ein python pogramm auf ubutu mate im hintergund laufen zu lassen...
Vielleicht solltest du nochmal dein Konzept überdenken. Wenn es so funktionieren würde, wie du es dir vorstellst, würdest du z.B. den Cursor in LibreOffice im Textdokument bewegen _und_ den Programm würde reagieren. Nicht unmöglich aber ungewöhnlich.
@__blackjack__ : wie würde man denn ohne low-level Zugriff / Root-Rechte an Tasturevents kommen, wenn das Programm nicht den Fokus hat?
Gruß, noisefloor
GUI-Automatisierungen sind meiner Meinung nach das letzte Mittel, wenn es sonst nicht anders geht; GUIs sind dafür gedacht, von Menschen bedient zu werden. Wir wissen ja noch nicht so genau, was du eigentlich vorhast. Welche Software möchtest du denn überhaupt automatisieren? Wenn du das etwas ausführst, fällt jemandem vielleicht eine andere Variante ein.
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@noisefloor: Es geht hier doch gar nicht darum an Tastaturereignisse zu kommen sondern welche zu generieren. Und das geht mit `pyautogui` ohne spezielle Rechte.
@nezzcarth: Ich weiss es konkret auch nicht, aber es klingt für mich so als sollten einfach Tasten simuliert werden auf bestimmte GPIO-Eingaben. Also Beispielsweise Joy- oder Thumbstick der in Cursor-Tasten übersetzt wird, könnte ich mir da jetzt vorstellen.
@nezzcarth: Ich weiss es konkret auch nicht, aber es klingt für mich so als sollten einfach Tasten simuliert werden auf bestimmte GPIO-Eingaben. Also Beispielsweise Joy- oder Thumbstick der in Cursor-Tasten übersetzt wird, könnte ich mir da jetzt vorstellen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@__deets__: Ja ich weiss, und? Das funktioniert auch wenn man es „in den Hintergrund stellt“ für das was ich mir darunter vorstelle. Jetzt ist die Frage wie der TE es in den Hintergrund stellt so das es nicht mehr funktioniert.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Ich versuche meinen Raspberry pi in einem E-Reader umzubauen... Ich benutze dafür calibre und möchte dem Vollbildmodus nutzen. Um diesen allerdings wieder zu verlassen muss man die Escape taste drücken. Ich habe keine Tastatur angeschlossen deswegen versuche ich es auf diesen weg. Vielen dank für eure hilfe versuche.nezzcarth hat geschrieben: Mittwoch 12. Februar 2020, 20:50 GUI-Automatisierungen sind meiner Meinung nach das letzte Mittel, wenn es sonst nicht anders geht; GUIs sind dafür gedacht, von Menschen bedient zu werden. Wir wissen ja noch nicht so genau, was du eigentlich vorhast. Welche Software möchtest du denn überhaupt automatisieren? Wenn du das etwas ausführst, fällt jemandem vielleicht eine andere Variante ein.
Ich würde mich über weitere Hilfe freuen!
Grüsse
Fischchen
Ps:Ich habe pynput bereits ausprobiert, gleiche Resultate
Calibre ist übrigens in Python (allerdings 2; das wird sich laut dem Autor auch nicht ändern) geschrieben. Der saubere Ansatz wäre daher meiner Meinung nach, dass man mal schaut, ob man nicht eine Art Wrapper o.Ä. um die dazugehörigen Module schreiben kann, der die von dir gewünschten Funktionen unmittelbar ansteuert. Zugebenermaßen ist das für Einsteiger schwieriger zu realisieren, als die Gui zu automatisieren.
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@nezzcarth: Der Kommentar ist von 2017 und im offiziellen Github-Repo gibt es einen aktiven py3-Branch in dem auch der Autor selbst committed: https://github.com/kovidgoyal/calibre/commits/py3
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
@__blackjack__: Das ist mir bekannt. Ich habe da nur ein besonders plakatives Zitat herausgesucht. Es gibt auch spätere Zitate, die in dieselbe Kerbe schlagen. Soweit ich weiß, hat sich an der Grundhaltung des Autors nicht viel geändert (ich lasse mich da gerne korrigieren): Andere dürfen gerne Patches für Python3 committen, solange der Code unter Python 2 und 3 läuft. Und so ist dann auch der Branch zustande gekommen; dafür sind im wesentlich andere Personen verantwortlich (siehe https://github.com/kovidgoyal/calibre/pull/870). Die Commit-Historie des Branches ist übrigens nicht besonders zuverlässig und viele der Commits, die man dort sieht, stammen denke ich aus dem Master Branch.
So oder so ist mein Stand, dass zumindest die aktuelle Version bei mir nicht unter Python3 läuft. Wenn man also wirklich damit programmieren will, kommt man auf absehbare Zeit nicht um Python 2 herum.
So oder so ist mein Stand, dass zumindest die aktuelle Version bei mir nicht unter Python3 läuft. Wenn man also wirklich damit programmieren will, kommt man auf absehbare Zeit nicht um Python 2 herum.