Um die Frage mal selbst zu beantworten: Gegen meinen Code spricht, dass er nur einen Death = True Durchlauf macht danach würde ja nochmal ein Adlib aufgerufen das funktioniert nur mit Adlib nicht was ich auch erst später getestet habe.
Als einfache Lösung ginge dann noch:
Code:
Func _Deathcheck()
Select
Case _MemoryRead($Death, $hprocess) = 1
$Runs = $Runs - 1
_resign()
_Schleife()
EndSelect
EndFunc ;==>_Deathcheck
Func _Check_Send($Taste, $hwnd)
_Deathcheck()
ControlSend($hwnd, "", "", $Taste)
EndFunc ;==>_Check_Send
Func _Check_Sleep($D_min, $D_max)
$Dauer = Random($D_min, $D_max)
$SlpAnfang = TimerInit()
Do
sleep(100)
_Deathcheck()
Until TimerDiff($SlpAnfang) >= ($Dauer - ($Dauer / 100))
EndFunc ;==>_Check_Sleep
Mit _Check_Send halt die Sends im Bereich in dem er Checken soll ersetzen und _Check_Sleep bei längeren Sleeps (unter 3 Sek. würd ichs nicht nehmen) die Resign und Schleife func musst du dann natürlich selbst einfügen genauso wie die Adresse von $Death.