Cursor werte manipulieren- oder wie man das nennt -.-

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
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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 :wink:
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hi,

du musst die Rückgabewerte von "win32api.GetCursorPos()" manipulieren, und mit diesen dann "windll.user32.SetCursorPos(x, y)" aufrufen.

gkuhl
Zuletzt geändert von gkuhl am Freitag 19. Dezember 2008, 17:29, insgesamt 1-mal geändert.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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? :lol: :roll:
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

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.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

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.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

OK danke für den Tipp. Werde ich sofort tun.
Antworten