[Back to ENTRY SWAG index] [Back to Main SWAG index] [Original]

    {
     BG> I have created a shield program that password-protects a specific
     BG> program. However, I cannot figure out how to make the password, when
     BG> being typed by the person entering the code, to make a * or other
     BG> character instead of the letter, so someone can't see what he's typing.
     BG> Any help here?

    Well, here is your help:

    -----------------------------------SOURCE-------------------------------------
    }
    Program Test;

    Procedure EnterPW(Var S:String;Idx,PosX,PosY:Byte);
    Var Ch,Ch2:Char;
    Begin
    S:='';
        Repeat
         GotoXy(PosX+Idx,PosY);
         Ch:=Upcase(ReadKey);
          Case (Ord(Ch)) Of
           0      : Begin
                     Ch2:=Readkey;
                     If Ord(Ch2)=75 Then
                     Begin
                      Delete(S,Length(S),1); Dec(Idx);
                     End;
                    End;
           65..90 : Begin
                     Inc(Idx);
                     S:=S+Ch;
                    End;
           97..122: Begin
                     Inc(Idx);
                     S:=S+Ch;
                    End;
           08     : Begin
                     Delete(S,Length(S),1);
                     Dec(Idx);
                    End;
           1..7   : Write(#7);
           9..12  : Write(#7);
           14..64 : Write(#7);
           91..96 : Write(#7);
           122..255:Write(#7);
          End;

          GotoXy(11+Idx,PosY);
          Write('*');
          If (Ord(Ch)=8) OR (Ord(Ch2)=75) Then
          Begin
           Ch2:=#0;
           GotoXy(12+Idx,PosY);
           Write('°');
          End;
         Until Ord(Ch)=13;
        WriteLn;
    End;

    Var
    Pw, PwV:String[8];
    I,X,Y:Byte;

    Begin
        Writeln;
        Write('Password : ');
        X:=WhereX;
        Y:=WhereY;
        WriteLn('°°°°°°°°');
        I:=0;
        EnterPw(Pw,I,X,Y);
        Write('Password : ');
        X:=WhereX;
        Y:=WhereY;
        WriteLn('°°°°°°°° (for verifying purposes)');
        I:=0;
        EnterPw(PwV,I,X,Y);
        If UpStr(Pw)<>Upstr(PwV) Then WriteLn('Verifying password
    failed...Aborting');End.

[Back to ENTRY SWAG index] [Back to Main SWAG index] [Original]