Bei mir wird nach selektierung in der Listbox und Drücken eines Buttons eine Funktion aufgerufen, was auch gut funktioniert. Allerdings nur beim letzten Eintrag in der Listbox. In den anderen Fällen bekomme ich einen KeyError in untenstehender playMacro-Zeile. Wie kann ich auch die anderen zum Laufen bringen? Wäre euch sehr dankbar, wenn ihr mir helfen könntet. Benutze Python 2.7
Mit: playMacro(macros[listbox.get(listbox.curselection())]) wird die folgende Funktion aufgerufen:
Code: Alles auswählen
def playMacro(macro):
global WAIT_BETWEEN_ACTIONS
for action in macro:
time_delta = action[0]
action_type = action[1]
if WAIT_BETWEEN_ACTIONS:
time.sleep(time_delta)## Geschwindigkeit time_delta
if action_type in ("key up", "key sys up", "key down", "key sys down"):
key = int(action[2])
if action_type[-1] == "p": # key up
ReleaseKey(key)
else:
PressKey(key)
elif action_type == "mouse move":
desired_position = (int(action[2]), int(action[3]))
user32.SetCursorPos(*desired_position)
else:
current_mouse_position = getMousePosition()
relative_position = (int(action[2]) - current_mouse_position[0], int(action[3]) - current_mouse_position[1])
mouse_change = 0x0002 if action_type == "mouse left down" else \
0x0004 if action_type == "mouse left up" else \
0x0020 if action_type == "mouse middle down" else \
0x0040 if action_type == "mouse middle up" else \
0x0008 if action_type == "mouse right down" else \
0x0010
MouseEvent(0x0001 + mouse_change, *relative_position)