Página 1 de 1

Como criar máscara da senha?

Enviado: 23 Mai 2014 15:11
por Maurício Elias
Olá pessoal.
Por conta de um probleminha na utilização do mouse, estou mudando minha tela inicial de logar a senha. Mas não consigo descobrir qual a máscara do GET prá não mostrar a senha digitada. Já tentei Get wSenha Pict "@#" , mas não deu certo. Não consigo encontrar nem no NG.
Alguém lembra qual é ?

Como criar máscara da senha?

Enviado: 23 Mai 2014 15:28
por bencz

Código: Selecionar todos

//PASSWORD 

@ 10, 10 Get cSenha VAR vSenha SIZE 80, 20 PASSWORD

Como criar máscara da senha?

Enviado: 23 Mai 2014 17:44
por Toledo
Amigos, outra opção seria usar a função GetSecret():

Código: Selecionar todos

*********************************
* Compilar: hbmk2 demo.prg -lhbct
*********************************
PROC Main()
LOCAL cSenha:=Space(10)
CLS
SetMode(25,80)
cSenha:=GetSecret(cSenha, 10, 10, .T., "Senha: ")
If !(alltrim(lower(cSenha))=="forum")
  Alert("Senha Invalida")
  RETU
Endif
Alert("Ok! Senha Correta")
RETU
Abraços,

Como criar máscara da senha?

Enviado: 23 Mai 2014 18:05
por Maurício Elias
Colega, obrigado hein, mas não funcionou não, deu erro na compilação esse comando.
Qual é a variável: cSenha ou vSenha? O q é o Size ?

Como criar máscara da senha?

Enviado: 23 Mai 2014 19:02
por Toledo
bencz escreveu:@ 10, 10 Get cSenha VAR vSenha SIZE 80, 20 PASSWORD
Este não é comando do Harbour, é da HwGui.

Abraços,

Como criar máscara da senha?

Enviado: 23 Mai 2014 21:54
por Maurício Elias
Toledo, boa noite.
Entendi rsrs...
Sua função resolveu na primeira.
Só troquei o parâmetro .T. por .F. , ele passou a mater o digitado na tela.
Valeu hein cara.
Mas só por curiosidade, vc lembra qual a máscara da Picture q inibe a visualização?

Como criar máscara da senha?

Enviado: 23 Mai 2014 22:32
por Toledo
Bom, no Clipper e também no Harbour não existe uma picture que inibe a visualização, o que você pode fazer é mudar as cores do GET, letra na cor branca com fundo também branco.

Código: Selecionar todos

***********************************
* Compilar: hbmk2 demo.prg
***********************************
Proc Main()
Cls
cSenha:=spac(20)
@ 10, 10 SAY "Senha:" GET cSenha SEND COLORSPEC:="W/N,W/W,,,N/W"
read
? "Senha digitada: ",cSenha
Retu
Abraços,

Como criar máscara da senha?

Enviado: 24 Mai 2014 09:48
por Nascimento
ou tambem tem essa opçao que esta nos fontes de disquete do rick spence

Código: Selecionar todos

/***
* Getpass.prg
*
* Password GET - echoing asterisks
*/

#include "Getexit.ch"
#include "Inkey.ch"
#include "Getpass.ch"

FUNCTION Getpass

LOCAL cVar1 := Space(10), ;
      cVar2 := Space(15), ;
      cVar3 := Space(12)

LOCAL GetList := {}

  CLEAR SCREEN
  @ 10, 10 SAY "Enter cVar1" GET cVar1 PASSWORD PICTURE "XXX-XXX-XXXX"
  READ

RETURN NIL


proc GetPassword( oGet )

LOCAL nKey,              ;
      nChar,             ;
      cKey

  // read the GET if the WHEN condition is satisfied
  IF ( GetPreValidate(oGet) )
    // activate the GET for reading
    oGet:SetFocus()

    oGet:cargo := ""
    DO WHILE ( oGet:exitState == GE_NOEXIT )
      // check for initial typeout (no editable positions)
      IF ( oGet:typeOut )
        oGet:exitState := GE_ENTER
      ENDIF

      // apply keystrokes until exit
      DO WHILE ( oGet:exitState == GE_NOEXIT )
        nKey := InKey(0)
        IF nKey >= 32 .AND. nKey <= 255
          oGet:cargo += Chr(nKey)
          GetApplyKey(oGet, Asc("*"))
       	ELSEIF nKey == K_BS
          oGet:cargo := Substr(oGet:cargo, 1, Len(oGet:cargo) - 1)
          GetapplyKey(oGet, nKey)
        ELSEIF nKey == K_ENTER
          GetApplyKey(oGet, nKey)
        ENDIF
      ENDDO

      // disallow exit if the VALID condition is not satisfied
      IF ( !GetPostValidate(oGet) )
        oGet:exitState := GE_NOEXIT
      ENDIF
    ENDDO
    // de-activate the GET
    oGet:KillFocus()
  ENDIF
  IF oGet:exitState != GE_ESCAPE
    oGet:varPut(oGet:cargo)
  ENDIF

RETURN
esta nesse link o arquivo em anexo sim testei em harbour funcionou perfeitamente
https://pctoledo.org/forum/viewto ... =1&t=15038