myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Python] Maus bewegen und Tastatureingaben simulieren (https://mygully.com/showthread.php?t=1993552)

Mint 14.02.10 18:31

[Python] Maus bewegen und Tastatureingaben simulieren
 
Hi Forum!
Vorweg: Ich habe Grundkenntnisse in c++ und vb, habe mit python und java angefangen.
ich habe gehört dass es Programme gibt die man startet und die dann zum Beispiel Mauszeiger bewegen und klicken oder Tastatureingaben simulieren könnten als säße man selbst vorm PC. Ich wollte mal fragen ob irgendjemand weiß in welcher Sprache oder mit welchem tool diese Progs erstellt worden sind.
Danke!

gosha16 14.02.10 18:36

mit C++ und WinAPI könnte man das realisieren.
Funktionen:
mouse_event()
keybd_event()

Mint 14.02.10 18:52

fäät, ich werds mal googlen. Funktioniert das auch unter linux mit der entsprechenden IDE (benutze zurzeit anjuta)?
Danke schonmal!

gosha16 14.02.10 18:55

Nein unter Linux musst du andere Funktionen nehmen. Aber frag mich nicht welche.

Mint 25.02.10 18:18

Geht das evtl. auch mit python?

Celion 11.04.10 13:14

also der folgende code ist von einer freundin scheint aber richtig zu sein ;) (was python angeht bin ich nicht so der überflieger :P )


Der nun folgende Code wurde nicht vom User Celion(Cytosin) programmiert, getestet oder unterstützt.
Der obengenannte User haftet nicht für Schäden, welche durch Benutzung dieses Codes passieren könnten.
Ob dieser Code funktioniert bzw. ob dieser Code Fehler enthält ist dem User Celion(Cytosin) aufgrund mangelndem Wissen in der Programmiersprache Python unbekannt.

-------------------8>------------------------

import sys

def set_cursor_pos(x, y):
if sys.platform == 'win32':
from ctypes import windll
windll.user32.SetCursorPos(x, y)
elif sys.platform == 'linux-i386':
from ctypes import cdll
dll = cdll.LoadLibrary('libX11.so')
d = dll.XOpenDisplay(None)
root = dll.XDefaultRootWindow(d)
dll.XWarpPointer(d,None,root,0,0,0,0,x,y)
dll.XCloseDisplay(d)

-------------------<8------------------------

Mint 14.04.10 13:58

Danke, aber leider fehlt die Formatierung und die Einrückungen sodass ich nicht weiß welche Zeile zu welcher Schleife gehört:confused:
Find ich aber gut dass erst geprüft wird welches System vorhanden ist!

Btw:
Zitat:

Der nun folgende Code wurde nicht vom User Celion(Cytosin) programmiert, getestet oder unterstützt.
Der obengenannte User haftet nicht für Schäden, welche durch Benutzung dieses Codes passieren könnten.
lol:D

OnTheRocks 19.10.10 13:52

Maus Zeiger zieht Kreise
 
Vielen Dank fuer den Python- Schnipsel. Hat mir wirklich sehr geholfen. Ich habe ein kleines Skript
geschrieben, das aller 10 Sekunde den Maus- Zeiger kreisen laesst. So kann ich meine citrix session offen halten :)

"""
Hier mein Beispiel. Laeuft auf Linux. Weil die Formatierung verloren geht,
habe ich "TAB" eingetragen. Also bitte im Editor "TAB" durch Tabulator ersetzen.
"""

import os
import re, string
import sys
import math
import time
from ctypes import cdll


def moveMouse( x, y):
TAB"""
TABThis procedure is used to move the mouse curser.
TAB"""

TABdll = cdll.LoadLibrary('libX11.so')
TABd = dll.XOpenDisplay(None)
TABroot = dll.XDefaultRootWindow(d)
TABdll.XWarpPointer(d,None,root,0,0,0,0,x,y)
TABdll.XCloseDisplay(d)
TABreturn(0)

def drawCircle( centerX, centerY, radius):
TAB"""
TABThis procedure moves the mouse pointer in a circle shape
TAB"""

TABfor angle in range( 0, 360):
TABTABgrad = angle * math.pi / 180.0
TABTABx = math.cos( grad) * radius + radius + centerX
TABTABy = math.sin( grad) * radius + radius + centerY
TABTABmoveMouse( int(x), int(y))
TABreturn( 0)


try:
TABwhile True:
TABTABdrawCircle( 500, 500, 200)
TABTABtime.sleep(10)

except IOError:
TABprint "Could not move the mouse cursor"

Mint 21.10.10 17:57

Cool das du das Thema nochmal ausgräbst!

Habe den Code mal eingetippt, bei der Print anweisung klammern gesetzt da ich die 3er version von python benutze und gestartet, leider Schmeisst er mir alerhand Fehlermeldungen um die Ohren:

Code:

Traceback (most recent call last):
  File "D:/Daten/Python/Mouse_move.py", line 36, in
    drawCircle( 500, 500, 200)
  File "D:/Daten/Python/Mouse_move.py", line 30, in drawCircle
    moveMouse( int(x), int(y))
  File "D:/Daten/Python/Mouse_move.py", line 14, in moveMouse
    dll = cdll.LoadLibrary('libX11.so')
  File "C:\Python31\lib\ctypes\__init__.py", line 428, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python31\lib\ctypes\__init__.py", line 350, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] Das angegebene Modul wurde nicht gefunden

Idee?

mfg, Mint

Btw: Code-Blöcke erhalten Formatierung!:T

gosha16 21.10.10 18:06

@OnTheRocks, es wäre ja zu einfach gewesen den Code Tag zu verwenden...

OnTheRocks 22.10.10 21:49

Hallo Mint,
wie ich schon geschrieben habe, läuft der Code bei mir auf Linux. Wenn Du den auf Windows
laufen lässt, befürchte ich Probleme. Windows hat doch keine X11-Library. Die lade ich aber
mit dem Befehl:
dll = cdll.LoadLibrary('libX11.so')
Und das wird wohl auch der Fehler bedeuten:
Das angegebene Modul wurde nicht gefunden

@gosha16, Du hast völlig Recht. Ich bin eben noch in der Lernphase :)

Viele Grüsse und schönes Wochenende.

Mint 23.10.10 10:14

Ou, hab ich Blindfisch übersehn....

Werd's dann mal auf meinem Ubuntu ausprobieren, vielleicht läufts da!

Hat jemand trotzdem ne Idee wie ich das skript auf Windows zum laufen kriege, unter Verwendung ähnlicher Bibliotheken oder so?

mfg, Mint.

PornoPenner 23.10.10 12:09

DAS Skript wirst Du unter Windows nicht zum Laufen bekommen.
Du benötigst eine andere Bibliothek für Windows und die wird andere Methoden und andere Argumente benötigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.