Seite 1 von 1
Cursor werte manipulieren- oder wie man das nennt -.-
Verfasst: Freitag 19. Dezember 2008, 16:43
von INFACT
Hallo, ich möchte ein Programm schreiben, dass den Cursor zb. 100 pixel nach unten oder nach rechts bewegt.
Bei der Forum suche habe ich folgendes gefunden:
Code: Alles auswählen
import win32api
import ctypes
def set_cursor_pos(x, y): #um den Cursor zu bewegen
windll.user32.SetCursorPos(x, y)
win32api.GetCursorPos() #um die Pos des Cursors zu finden
jetzt habe ich das Problem(ich komm einfach nicht drauf) wie ich diese beiden Funktionen verbinden kann und damit die oben genannte Funktion schreiben zu können. Hoffe auf baldige Antworten oder einen Gedankenblitz

Verfasst: Freitag 19. Dezember 2008, 17:23
von gkuhl
Hi,
du musst die Rückgabewerte von "win32api.GetCursorPos()" manipulieren, und mit diesen dann "windll.user32.SetCursorPos(x, y)" aufrufen.
gkuhl
Verfasst: Freitag 19. Dezember 2008, 17:56
von INFACT
Hi, danke für deine Antwort. Leider scheint dieses script bloß nicht zu Funktionieren:
Code: Alles auswählen
import win32api
import ctypes
def set_cursor_pos(x, y): #um den Cursor zu bewegen
windll.user32.SetCursorPos(x, y)
win32api.GetCursorPos()
alpha=0
beta=0
for line in win32api.GetCursorPos():
line=line.strip()
zuordnung=line.split(",")
alpha=zuordnung[0]
beta=zuordnung[1]
def moveCursor(x,y):
alpha+=x
beta+=y
set_cursor_pos(alpha,beta)
moveCursor(100,100)
da erschein immer folgende Fehlermeldung:
- Traceback (most recent call last):
File "C:/Dokumente und Einstellungen/Robin/Desktop/MoveCursor.py", line 11, in <module>
line=line.strip()
AttributeError: 'int' object has no attribute 'split'
Bin ich bloß zu doof oder warum versteh ich das nicht?

Verfasst: Freitag 19. Dezember 2008, 18:06
von roschi
hallo!
die fehlermeldung sagt doch schon alles.
du bekommst einen integer, und keinen string
Code: Alles auswählen
import win32api
import ctypes
def set_cursor_pos(x, y):
ctypes.windll.user32.SetCursorPos(x, y)
# wir holen die aktuelle position inform eines tuples (x, y)
# und speichern sie in ``pos``:
pos = win32api.GetCursorPos()
# pos[1] - also y - wird um 100 erhoeht,
# damit der cursor 100 pixel runter geht:
pos = (pos[0], pos[1] + 100)
# und schließlich setzen wir die position:
set_cursor_pos(pos[0], pos[1])
lg
roschi
PS: wenn du ein anstaendiges tutorial durchgearbeitet haettest, wuerdest du solche fragen nicht stellen.
Verfasst: Freitag 19. Dezember 2008, 18:12
von gkuhl
roschi hat geschrieben:PS: wenn du ein anstaendiges tutorial durchgearbeitet haettest, wuerdest du solche fragen nicht stellen.
Das wollte ich auch gerade empfehlen. Es scheint so, als fehlen dir die wichtigen Grundlagen. Ein Tutorial sollte da eigentlich Abhilfe schaffe. Danach sollte vieles klarer sein.
Verfasst: Freitag 19. Dezember 2008, 18:14
von INFACT
OK danke für den Tipp. Werde ich sofort tun.