Hi Stefan,
There is a feature request in the system Bz559 - ability to define a global action, or idle trigger.
In the past I have added similar functionality using the pre-processor.
&define END_INPUT ON ACTION hardcopy CALL print_hardcopy() \
END INPUT
it was then a simple task to search and replace all your sources 1,$s/END INPUT/END_INPUT/, and to tell the developers to cdoe END_INPUT and not END_INPUT. We did something similar for MENU, CONSTRUCT, DISPLAY ARRAY etc. and had quite a number of actions as well as an ON IDLE for each dialog.
Ideally I'd like to see Bz559 implemented but the above technique will give you the same result.
Hope that helps,
Reuben