Hallo,
es wundert mich das die Meldung erst nach 5 Stunden kommt! Dein Programm ist ja eine einzige rekursive Endlosschleife!
Beispiel: Du rufst mit dem Hotkey die Funktion S() auf, die Funktion S() ruft aufgrund des String "Take" die Funktion W(). Die Funktion W() ruft die Funktion P() auf. Am Ende von P() wird wieder die Funktion S() auf obwohl Funktion S() ja noch läuft, sie wurde gleich als erste aufgerufen und läuft in einer Endlosschleife, wurde also noch nicht beendet.
Bei jedem Funktionsaufruf wird die Rücksprungadresse auf dem Stack (Stabelspeicher) abgelegt, irgendwann sind die Funktionen so oft aufgerufen das der Stack voll ist und besagter Fehler kommt. Nur weil aus einer Funktion eine ander Funktion aufgerufen wird, wird diese nicht beendet. Wenn eine Funktion aufgerufen wird wird diese abgearbeitet und kehrt dann dahin zurück wo sie aufgerufen wird. D.h. Du musst dafür sorgen das die Funktionen auch mal ihr Ende (EndFunc) erreichen damit der Stack auch wieder geleert wird.