Do you know any tool/software that allow me to "intercept" exactly data on
every field on screen when user press Enter (or any other function key)?
It isn't clear what you want to do here. Are you wanting to create an audit
log of activity from sensitive programs? Debug a process? Are you looking
for just the field contents, or the entire screen image? Are you wanting to
dynamically start or stop this intercept on an ad hoc basis? Can the user
know it is happening?
Some possibilities depending on what you want to do:
1) The DDS keywords LOGINP and LOGOUT can be added to display files to
have the input and/or output buffers written to the job log.
2) Use STRCPYSCN to an output file
3) Use Dynamic Screen Manager (DSM) apis to capture the screen contents
without the user knowledge / consent
The DSM apis must be used from within the job to be captured. In a previous
life, I wrote a utility which uses this technique:
- Subsystems like QINTER have their routing entries changed to call your
own program instead of QCMD. This program creates a dedicated *MSGQ for the
device and assigns a break handling program to the MSGQ, then continues on
to QCMD. This lets you discretely insert a break handling program into each
- Code the break handling program to accept various instructions, such as
capture the current screen image or whatever (this is where the DSM apis
come into play)
- Code another program which lets you select the job to monitor, then it
sends *BREAK messages to the msgq, collects the screen image, and logs it
and/or displays it on your own screen (again using DSM)
The break handler runs under the covers in the user's job, and just captures
the current screen image. It is accurate to the current keystroke, even if
the user has not pressed enter or a function key. But you must request a
refresh by sending another break message. It doesn't monitor for each press
of an AID key and log the data. An auto-refresh interval could be defined
if you wanted a hands-off refresh of another user's session contents.
I used the DSM apis to grab the current screen image, but if all you wanted
were the input field buffer contents there are APIs for that too.