Função para Getar senha
Moderador: Moderadores
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Função para Getar senha
Olá amigos!
Algém tem uma função para getar senha, ou uma mascara que esconda o que está sendo digitado pelo operador.
Valeu.
Algém tem uma função para getar senha, ou uma mascara que esconda o que está sendo digitado pelo operador.
Valeu.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Código: Selecionar todos
/********** * * * * *
* GETSEN(P1)
* Nao se sabe a autoria...
*/
PROCEDURE GETSEN(P1)
LOCAL L2, L3, L4
IF GETPREVALIDATE(P1) // NOME COMPLETO
P1:SETFOCUS()
P1:CARGO := ""
DO WHILE P1:EXITSTATE() == 0
IF P1:TYPEOUT()
P1:EXITSTATE := 5
ENDIF
DO WHILE P1:EXITSTATE() == 0
L2 := INKEY(0)
IF L2 >= 32 .AND. L2 <= 255
P1:CARGO := P1:CARGO() + CHR(L2)
GetApplyKey(P1, 42) // NOME COMPLETO
ELSEIF L2 = 8
P1:CARGO := SUBSTR(P1:CARGO(), 1, LEN(P1:CARGO()) - 1)
GetApplyKey(P1, L2) // NOME COMPLETO
ELSEIF L2 = 13 // Sai com tecla ENTER e retorna a
// senha digitada
GetApplyKey(P1, L2) // NOME COMPLETO
ELSEIF L2 = 27 // Sai com Tecla ESC e retorna vazio
GetApplyKey(P1, L2) // NOME COMPLETO
ENDIF
ENDDO
IF .NOT. GETPOSTVALIDATE(P1) // NOME COMPLETO
P1:EXITSTATE := 0
ENDIF
ENDDO
P1:KILLFOCUS()
ENDIF
IF P1:EXITSTATE() <> 7
P1:VARPUT(P1:CARGO())
ENDIF
RETURN
Código: Selecionar todos
@ 12, 24 say "Usuario:" get cUser pict "@!"
@ 14, 24 say "Senha: " get cSenha
ATAIL(GETLIST):READER := {|BL1|GETSEN(BL1)}
readStanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Código: Selecionar todos
************
FUNC LESENHA
************
aSENHA := savenv( 00, 00, 25, 79 )
SET CURSOR ON
SELE 32
USE DADOS alias NEW_DAD READONLY
PUBLIC vVALIDA
vVALIDA="N"
SELE NEW_DAD
vSEN=SENHAVALE
vSEN1=STR(vSEN)
SETCOLOR( "N*/W,W+/BG" )
aWin := Win( 10, 18, 14, 60, "Senha Especial !", WT_VERDE2BRANCO,WD_VERDE2BRANCO)
@ 12,23 say "Favor Informar a Senha ->"
SET CONFIRM OFF
IF Pegasenha(6,vSEN1)
vVALIDA="S"
ELSE
MsgINFO("Senha Especial Incorreta !!!, Favor Verificar","Aviso do Sistema")
RSTENV(aSENHA)
RETURN
ENDIF
IF LASTKEY()==27
RSTENV(aSENHA)
RETURN
ENDIF
SET CONFIRM ON
RSTENV(aSENHA)
RETURN
* -----------------------------------------------------------------------------
Func pegasenha(tamanho,senhaok)
* -----------------------------------------------------------------------------
local ok := .f.
@ 12,48 say ''
xsenha = KEYINPUT(tamanho,.f.,.f.,'r/w')
return( uppe(xsenha)=uppe(senhaok) )
* -----------------------------------------------------------------------------
FUNC keyinput()
* -----------------------------------------------------------------------------
param p_numchars,p_upcase,p_echochar,p_cor
private f_str, f_i, f_key, f_c, f_mrow, f_mcol
p_numchars = iif (type ('p_numchars') = 'N', p_numchars, 80)
p_upcase = iif (type ('p_upcase') = 'L', p_upcase, .f.)
p_echochar = iif (type ('p_echochar') = 'L', p_echochar, .t.)
p_cor = iif (type ('p_cor') = 'C', p_cor,setcolor())
oldcor := setcolor()
f_str = ''
f_i = 1
setcolor(p_cor)
do while f_i <= p_numchars
f_key = inkey (0)
IF f_key > 31 .and. f_key < 127
f_c = iif (p_upcase, upper (chr (f_key)), chr (f_key))
f_str = f_str + f_c
f_i = f_i + 1
?? iif (p_echochar, f_c, '*')
ELSEIF f_key = 8 .and. f_i > 1
f_mrow = iif (col () = 0, row () - 1, row ())
f_mcol = iif (col () = 0, 79, col () - 1)
@ f_mrow, f_mcol say ' '
@ f_mrow, f_mcol say ''
f_i = f_i - 1
f_str = iif (f_i = 1, '', substr (f_str, 1, f_i - 1))
ELSEIF f_key = 13
exit
ELSEIF f_key = 27
f_str = ''
exit
ENDIF
enddo
setcolor(oldcor)
return f_str
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Opa,
Legal ter outra opção, mas acredito que a primeira seja mais válida, visto que trata o conteúdo diretamente pela lista de GETs...
Nem fui eu quem escrevi a função, baixei ha muito tempo na net, mas é muito bem eleborada.
Valeu!
Legal ter outra opção, mas acredito que a primeira seja mais válida, visto que trata o conteúdo diretamente pela lista de GETs...
Nem fui eu quem escrevi a função, baixei ha muito tempo na net, mas é muito bem eleborada.
Valeu!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Sem falar que é perfeitamente possível existir a necessidade de um campo de uma lista GET ser do tipo senha. Esta função já não possibilita isso. Aliás, normalmente, log-in inclui um nome, que demandaria um GET. Se no campo de senha, você não teria como corrigir um eventual erro no nome apenas voltando ao campo do nome. Fica um sistema sem coesão. Por isso voto na primeira também.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Claro. E todo exemplo é sempre bem-vindo. Mas acredito que temos liberdade para apontar os prós e contras de cada método. Ou não temos?apenas é um exemplo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Eu vi e já respondi. Obrigado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Valeu mesmo!
A ajuda foi muito boa e fiquei com a primeira mesmo.
Muito obrigado Stanis, e a todos também.
Con isso a minha rotina de enviar e-mail ficou completa.
A ajuda foi muito boa e fiquei com a primeira mesmo.
Muito obrigado Stanis, e a todos também.
Con isso a minha rotina de enviar e-mail ficou completa.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Do jeito que esta nao se pode mudar do get da senha p/ outros gets, pelo menos tentei e nao consegui.Se no campo de senha, você não teria como corrigir um eventual erro no nome apenas voltando ao campo do nome
De qualquer forma é uma função muito util.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Não dá mesmo. Mas com esta função é até possível pegar uma senha. Só que tem que fazer uma gambiarra se tiver um nome de log-n também.Do jeito que esta nao se pode mudar do get da senha p/ outros gets, pelo menos tentei e nao consegui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
É verdade, eu nem lembrava, mas não dá
(
Quando eu disse da vantagem de trabalhar com o get é de que o conteúdo fica disponível na mesma matriz que os demais gets antes do read.
Talvez de pra implementar uma situação onde se apertando a tecla 'pra cima' dê o foco pro get anterior.Mas essa tarefa deixo com os colegas que tiverem maior interesse. Estou usando mais o xHarbour e já tem este recurso de get com senha nativo.
Valeu!!!!!
Quando eu disse da vantagem de trabalhar com o get é de que o conteúdo fica disponível na mesma matriz que os demais gets antes do read.
Talvez de pra implementar uma situação onde se apertando a tecla 'pra cima' dê o foco pro get anterior.Mas essa tarefa deixo com os colegas que tiverem maior interesse. Estou usando mais o xHarbour e já tem este recurso de get com senha nativo.
Valeu!!!!!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Eu ja precisei fazer isso e a minha saída foi alterar o GETSYS para que pudesse navegar entre os gets e fazer a visualização do que foi digitado com um carcater especial. Simplesmente verifico se o nome da variável é a da senha então faço a rotina de digitação/exibição de senha (+/- como a função do Stanis, INKEY em looping).
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- rrfsistemas
- Usuário Nível 3

- Mensagens: 249
- Registrado em: 11 Jul 2004 18:16
- Localização: Uberlândia/MG
Ja que vcs stão precisando de uma função de senha ...
Fiquem a vontade para comentar
este exemplo é so de senha...
Fiquem a vontade para comentar
este exemplo é so de senha...
Código: Selecionar todos
Function Senha(Lin,Col)
Local wSenha := "" ,;
wTamanho := 10 ,;
wDigito := "" ,;
wNroDigitos := 0
While .T.
If wNroDigitos = wTamanho
Exit
Endif
@ Lin,Col Say ""
wDigito = Inkey(0)
Do Case
Case wDigito = 13
Exit
Case wDigito = 27
Exit
Case wDigito = 8
wNroDigitos = wNroDigitos - 1
If wNroDigitos < 0
wNroDigitos = 0
Loop
EndIf
col = col - 1
@ Lin,Col Say " "
wSenha = Substr( wSenha,1,Len( wSenha ) - 1 )
Loop
EndCase
wNroDigitos = wNroDigitos + 1
wSenha = wSenha + Chr( wDigito )
@ Lin,Col Say Chr(004)
col = col + 1
End
wSenha = wSenha + Space( wTamanho - Len( wSenha ) )
Return( Upper( wSenha ) )
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...

