Seite 1 von 1

Mausaktivität ausführen

Verfasst: Mittwoch 26. September 2007, 17:31
von lordmyder
Hallo,
ich würde gerne den Mauszeiger per Python-Script über den Bildschirm wandern lassen zu einem bestimmten Punkt um dort dann einen Mausklick zu simulieren.
Ist das möglich?
Ich weiß, dass man die Cursorposition verändern kann, das gelinkt mir auch schon, aber kann man einen Mausklick simulieren?
Danke für eure Antworten,
LordMyder

Verfasst: Mittwoch 26. September 2007, 18:18
von gerold
Hallo lordmyder!

Linux? Windows? KDE? Gnome? ;-)

mfg
Gerold
:-)

Verfasst: Mittwoch 26. September 2007, 18:41
von lordmyder
Sry, hab ich ganz vergessen :-D
Ich bin Windows XP Nutzer...

Verfasst: Mittwoch 26. September 2007, 18:43
von veers
gerold hat geschrieben:Hallo lordmyder!

Linux? Windows? KDE? Gnome? ;-)

mfg
Gerold
:-)
*nix User wissen doch wie man Fragen stellt *hoff*.

Somit wird er die Antwort wohl da finden:
http://www.python-forum.de/topic-11455,15.html

Verfasst: Mittwoch 26. September 2007, 19:45
von gerold
lordmyder hat geschrieben:Sry, hab ich ganz vergessen :-D
Ich bin Windows XP Nutzer...
Hallo lordmyder!

Ja dann funktioniert das so: :-)

Code: Alles auswählen

>>> import win32api
>>> import win32con
>>> def mouse_event(x, y):
...     win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
...     win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)
...     
>>> mouse_event(10, 10)
>>>
Ich weiß nur noch nicht, wo jetzt hingeklickt wird. :roll:

EDIT:

http://www.danielmoth.com/Blog/2004/11/mouseevent.html
Das jetzt umzusetzen, habe ich jetzt aber keine Lust.

mfg
Gerold
:-)

Verfasst: Mittwoch 26. September 2007, 20:01
von lordmyder
Danke für die schnelle Hilfe!

Verfasst: Mittwoch 26. September 2007, 21:38
von Costi
.......geht das auch unter gnome.......... ?

Verfasst: Mittwoch 26. September 2007, 23:04
von gerold
Nachtrag:

Hier wird gezeigt wie es richtig funktioniert:
pywinauto --> Modul: controls/HwndWrapper.py --> Funktion: _perform_click_input

In _perform_click_input wird mit ``SendInput`` gearbeitet, was laut "Windows Platform SDK" die derzeit aktuelle Variante ist um ein Mausevent los zu schicken. --- Wenn ich so die PSDK durchsehe... Die WinAPI ist teilweise wirklich zum Kotzen.

- http://msdn2.microsoft.com/en-us/library/ms646310.aspx
- http://msdn2.microsoft.com/en-us/library/ms646270.aspx
- http://msdn2.microsoft.com/en-us/library/ms646273.aspx

Und das alles nur um einen Mausklick mit der linken Maustaste los zu werden. :roll:

- pywinauto: http://www.openqa.org/pywinauto/
- http://svn.openqa.org/fisheye/browse/py ... =607#l1449

mfg
Gerold
:-)

Verfasst: Mittwoch 26. September 2007, 23:27
von gerold
Nachtrag2:

Code: Alles auswählen

>>> from pywinauto.controls.HwndWrapper import _perform_click_input as perform_click_input
>>> perform_click_input(coords=(10, 10))
>>>
mfg
Gerold
:-)