#AREXX script
5 messages in this thread
All…
Does anyone know how to turn off the echo from an AREXX script ?
For example: user enters a password but it cannot be seen on screen.
AREXX doesn't seem to have a command for turning the echo off,
nor does it seem to have commands to change screen colors. Does
anyone know what memory poking can be done to change the input
color to the background color (this would be an effective way
to type an invisible password). — from within an AREXX script ?
Thanks.
Frank.
Frank, You might want to try opening a RAW: window from your ARexx program and
then read the password from there. Characters typed in a RAW window aren't
echoed to the display.
-Bill Hawes
The idea of changing the text to a backgroung color is pretty good… the
sequence say esc'[30m', should output the ANSI sequence to change the
foreground pen to color 0, you can change it back with <esc>[0m, or <esc>[31m,
if you don't want to upset your other styles
esc must be the escape char, ascii 27. also try esc followed by: [1m, [2m,
[3m, [42m, etc.
Frank
What you want to do is fairly easy if you use the standard ANSI console
control commands.
E.g: I am not sure how to turn the echo off (or indeed if the echo CAN be
turned off), but what I do is set the text to the same colour as the
background, so it is practically invisible.
/* some ansi examples */
Reset = '9b'x || '0m'
Invisible = '9b' || '31;41m'
Colourful = '9b' || '33;42m'
Italic = '9b' || '3m' /* etc…*/
SAY Colourful || 'The invisible '||,
Invisible || 'Man '||,
Reset || Italic || 'was here'||,
Reset /* don't forget to */
SAY 'Bye…'
The full list of ANSI codes can be found in the RKM (under console.device),
but any ANSI documentation should have them.
In fact if you do not use the SAY instruction (which forces a line-feed at the
end of each statement), but instead write directly to the console (in
conjunction with the ANSI codes), you can have full control of tab positions,
cursor, screen clearing etc.
The way to do this is by opening the console as a file for writing. The system
name for the console is "*". E.g:
/*…*/
open(console,'*','w')
message = 'Lots of codes etc.'
writech(console,message)
writech(console,'0a'x) /* a RETURN */
I hope this gives you an idea…
Alex
Thanks, Alex. Just what I needed. I knew there was a way…just couldn't
find the documentation necessary.
Regards,
Frank