Clipper On Line • Ver Tópico - Dúvida sobre entrada de senha

Dúvida sobre entrada de senha

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Dúvida sobre entrada de senha

Mensagempor Paulo_CPV » 16 Out 2013 09:42

Bom dia!

Gostaria de saber dos caros colegas do grupo se é possível criar um teclado virtual para entrada de senha na aplicação que desenvolvemos como os bancos fazem. Seria possível isto no Minigui ou HMG?

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Dúvida sobre entrada de senha

Mensagempor Mario Mesquita » 16 Out 2013 10:05

Olá!

Acredito não ter nada pronto ou semi-pronto nesse sentido, logo deve ser desenvolvido.

Também já pensei sobre isso. É uma boa ideia.

Sds.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Dúvida sobre entrada de senha

Mensagempor luiz antonio da silva » 21 Out 2013 17:18

Olá !

Veja se esse código ajuda.

#include <hmg.ch>

Function Main
public tabela

tabela:={'!','@','#','$','%','¨','&','*','(',')','_','+','Q','W','R','T','Y','U','I','O','P','´','[','A','S','D','F','G','H','J','K','L','Ç','~',']','\','Z','X','C','B','N','M',',','.','.',';','/'}
DEFINE WINDOW Tcv AT 306 , 853 WIDTH 742 HEIGHT 350 title "teclado" on init monta() main

END WINDOW
activate window tcv

Return

func monta()
nrow:=20
ncol:=-4
wid:=23
hei:=23
for a=1 to 47
   lb:='tecla'+strzero(a,3)
   lba:="'"+lb+"'"
   ncol:=ncol+24
   if ncol>284
      nrow:=nrow+24
      ncol:=20
   endif
   obj:=tabela[a]
   
   @ 20,20 label &lb value '1' width 23 height 23 centeralign action tecla(&lba) of tcv

   setproperty('tcv',lb,'row',nrow)
   setproperty('tcv',lb,'col',ncol)
   setproperty('tcv',lb,'value',obj)
   setproperty('tcv',lb,'width',wid)
   setproperty('tcv',lb,'height',hei)
   setproperty('tcv',lb,'backcolor',{192,192,192})
   setproperty('tcv',lb,'fontbold',.t.)
next a

retu

func tecla(x)
tcl:=getproperty('tcv',x,'value')
msginfo(tcl)
retu


Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 21 Out 2013 20:14

Amigos, segue mais um exemplo de teclado virtual para entrada de senha.

Link: Teclado Virtual

Abraços,
Anexos
tecladovirtual.jpg
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 22 Out 2013 15:43

Fiquei com vontade de desenvolver algo para esta finalidade. Se eu não tivesse baseado-me no grandioso exemplo que o colega Luiz Antonio posto, não conseguiria, uma solução fácil que despertou o meu interesse e espero que sirva a muitos.

Screen1.PNG

O pacote está disponível na seção de Downloads em clique aqui para baixar.

Espero que gostem ! :)Pos
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.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 22 Out 2013 16:50

Legal o teu teclado Toledo, gostei. Daria para fazer com que a janela pudesse ser movida com o mouse.
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.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 22 Out 2013 16:59

Pablo, vou ter que ver se dá para fazer, pois o teclado está na mesma tela do login. Outra coisa é que preciso saber qual o campo (TextBox - usuário ou senha) onde está o cursor, para poder preencher as teclas digitadas ou mudar de campo caso a tecla Enter seja clicada.
Mas vou ver o que consigo fazer, depois posto aqui.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Dúvida sobre entrada de senha

Mensagempor alxsts » 22 Out 2013 17:30

Olá!

Bacana mesmo. Parabéns!

Desafio ainda maior seria fazer um daqueles utilizados em aplicações web de bancos (Santander, por exemplo), onde as letras e números aparecem em ordem aleatória...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Dúvida sobre entrada de senha

Mensagempor luiz antonio da silva » 23 Out 2013 11:11

Olá !

Pablo...testei o teclado e ficou show, parabens pelo trabalho.

tomei a liberdade e adicionei 0 a 9.

alterei as seguintes linhas:
de
Local aTable:={'!','@','#','$','%','¨','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','´','[','A','S','D','F','G','H','J','K','L','Ç','~',']','\','Z','X','C','V','B','N','M',',','.',';','/'}
para
Local aTable:={'0','1','2','3','4','5','6','7','8','9','!','@','#','$','%','¨','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','´','[','A','S','D','F','G','H','J','K','L','Ç','~',']','\','Z','X','C','V','B','N','M',',','.',';','/'}


de
DEFINE WINDOW ATV AT yPos+80,xPos+nWidth-34 WIDTH 300 HEIGHT 130 title "" ;
para
DEFINE WINDOW ATV AT yPos+80,xPos+nWidth-34 WIDTH 300 HEIGHT 154 title "" ;


de
    For a=1 to 48
para
    For a=1 to len(aTable)


Novamente, parabens pelo trabalho genial.

Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Dúvida sobre entrada de senha

Mensagempor luiz antonio da silva » 23 Out 2013 11:30

Olá Alexandre !

Alterando o programa do Pablo, um exemplo das posições randomicas poderia ser assim:

Function ShowKeyboard()
Local a, obj
Local nrow:=26
Local ncol:=-18
Local wid:=23
Local hei:=23

//Local aTable:={'0','1','2','3','4','5','6','7','8','9','!','@','#','$','%','¨','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','´','[','A','S','D','F','G','H','J','K','L','Ç','~',']','\','Z','X','C','V','B','N','M',',','.',';','/'}
Local fTable:={'0','1','2','3','4','5','6','7','8','9','!','@','#','$','%','¨','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','´','[','A','S','D','F','G','H','J','K','L','Ç','~',']','\','Z','X','C','V','B','N','M',',','.',';','/'}

Local xPos := Login.Col
Local yPos := Login.Row
Local nWidth := Login.Width

Local aTable:={}

rt:=0
while .t.
num:=hb_randomint(1,len(ftable))
if num<1 .or. num>len(ftable); loop; endif

ret:=ascan(aTable, ftable[num])
if ret=0
   aadd(aTable, ftable[num])
   rt++
endif
   
if rt=len(ftable); exit; endif
enddo


luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Dúvida sobre entrada de senha

Mensagempor HASA » 23 Out 2013 16:04

:))
Gostaria de parabenizar o Toledo e o Pablo por disponibilizar um recurso bem interessante e de facil entendimento, compilei na Minigi Extend + Harbour + Bcc55 somente trocando o include HMG.CH Para MINIGUI.CH,
:{
Valeuuu
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 23 Out 2013 16:57

Ontem a noite, consegui reduzir o tamanho do teclado, ficou melhor. Mas também vi que seria preciso colocar os caracteres numéricos (muito importantes) e acabei suprimindo outros caracteres como: !@#$%¨&*() mas depois que vi o exemplo do Toledo, surgiu outra ideia. Colocar a tecla CapsLock e por quê não a tecla Shift mudando as teclas que possuem dupla valor de caracter. Também vi que é extremamente fácil substituir os LABELs de cada tecla por BUTTONs e ficou bem mais estético com canto arredondados.

Screen1.PNG

Brincando um pouco mais, modifiquei para que cada vez que for clicado o button este mude de tamanho para destacar o que está sendo clicado. Também adiconei um CheckBox para definir se deseja forçar o uso do teclado ou não...

Obrigado Luiz, mas foi você quem começou... agradeço as suas palavras e fico feliz saber que agradou. :)

Obrigado também Toledo pela sua contribuição, Alexandre pela outra ideia de caracteres aleatórios, Hasa e a todos, valeu pelo entusiasmo !
:)
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.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 23 Out 2013 18:46

Pablo César escreveu:Daria para fazer com que a janela pudesse ser movida com o mouse.


Pablo, agora dá para mover o teclado usando as bordas (qualquer borda - Superior/Inferior/Esquerda ou Direita), basta posicionar o mouse sobre a borda.

Fiz algumas alterações no meu exemplo, opções para mais teclas, além de letras e numéricas. Tentei simular um teclado virtual de smartphone.

Procurei fazer um teclado virtual que possa ser usado com qualquer formulário com TEXTBOX (ou GETBOX), o próprio teclado pega os campos que estão disponíveis, assim pode ser usado não só em uma tela de login, mas em qualquer cadastro. O botão Enter muda de uma campo para outro, e para saber em que campo está o próprio teclado muda a cor de fundo do campo ativo.

tecladovirtual2.jpg


Link atualizado: Teclado Virtual

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 24 Out 2013 13:40

Ficou muito bom Toledo !

Verifique a sua função Back_Press que deveria eliminar o caracter onde o cursor estiver posicionado e não eliminar o restante. Para isso eu utilizei o Stuff com opção delete e insert.

Outra coisa, veja que o caracter "Imagem" (E comercial ou ampersand em inglês) não aparece nos botões nem nos labels. Para isso pode utilizar o "ImagemImagem" duplo macro, mas terá que tratar para não inserir dois caracteres.

Gostei da nova aparência, parabéns !

:)Pos

Como tinha dito, iria modificar um tanto a nova versão com:

- Novas etiquetas (com aparência de botões) para teclas Shift e Backspace.
- Outros characteres especiais e para miusculas e minusculas
- Visualização do caracter "Imagem" (e comercial) para labels e buttons
- CheckBox para forçar teclado virtual
- Para as teclas pressionadas com cor e tamanho em destaque e som
- Foi mudado de LABELs para BUTTONs no teclado virtual

Screen1.PNG

Espero que gostem !
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.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 24 Out 2013 16:43

Pablo César escreveu:Verifique a sua função Back_Press que deveria eliminar o caracter onde o cursor estiver posicionado e não eliminar o restante. Para isso eu utilizei o Stuff com opção delete e insert.
Outra coisa, veja que o caracter "Imagem" (E comercial ou ampersand em inglês) não aparece nos botões nem nos labels. Para isso pode utilizar o "ImagemImagem" duplo macro, mas terá que tratar para não inserir dois caracteres.

Ok, obrigado pela dica, já fiz as correções.

A barra de espaço que não estava funcionando, dei um jeitinho e agora já funciona corretamente. E também inclui uma tela de cadastro para testar o teclado com vários campos para digitação.

tecladovirtual3.jpg


Link atualizado: Teclado Virtual

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro