Dúvida sobre entrada de senha
Moderador: Moderadores
Dúvida sobre entrada de senha
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
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
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Dúvida sobre entrada de senha
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.
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.
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
Dúvida sobre entrada de senha
Olá !
Veja se esse código ajuda.
Luiz.
Veja se esse código ajuda.
Código: Selecionar todos
#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
HMG 3.4.4 - SQL SERVER - ORACLE
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Dúvida sobre entrada de senha
Amigos, segue mais um exemplo de teclado virtual para entrada de senha.
Link: Teclado Virtual
Abraços,
Link: 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
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Dúvida sobre entrada de senha
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.
O pacote está disponível na seção de Downloads em clique aqui para baixar.
Espero que gostem ! :)Pos
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.
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
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Dúvida sobre entrada de senha
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.
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.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Dúvida sobre entrada de senha
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,
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
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
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Dúvida sobre entrada de senha
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...
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)
Alexandre Santos (AlxSts)
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
Dúvida sobre entrada de senha
Olá !
Pablo...testei o teclado e ficou show, parabens pelo trabalho.
tomei a liberdade e adicionei 0 a 9.
alterei as seguintes linhas:
Novamente, parabens pelo trabalho genial.
Luiz.
Pablo...testei o teclado e ficou show, parabens pelo trabalho.
tomei a liberdade e adicionei 0 a 9.
alterei as seguintes linhas:
Código: Selecionar todos
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',',','.',';','/'}
Código: Selecionar todos
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 "" ;
Código: Selecionar todos
de
For a=1 to 48
para
For a=1 to len(aTable)
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
Dúvida sobre entrada de senha
Olá Alexandre !
Alterando o programa do Pablo, um exemplo das posições randomicas poderia ser assim:
luiz.
Alterando o programa do Pablo, um exemplo das posições randomicas poderia ser assim:
Código: Selecionar todos
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
HMG 3.4.4 - SQL SERVER - ORACLE
Dúvida sobre entrada de senha
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Dúvida sobre entrada de senha
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.
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 !

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.
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.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Dúvida sobre entrada de senha
Pablo, agora dá para mover o teclado usando as bordas (qualquer borda - Superior/Inferior/Esquerda ou Direita), basta posicionar o mouse sobre a borda.Pablo César escreveu:Daria para fazer com que a janela pudesse ser movida com o mouse.
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.
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
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Dúvida sobre entrada de senha
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 "
" (E comercial ou ampersand em inglês) não aparece nos botões nem nos labels. Para isso pode utilizar o "
" 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 "
" (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
Espero que gostem !
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 "
" (E comercial ou ampersand em inglês) não aparece nos botões nem nos labels. Para isso pode utilizar o "
" 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 "
" (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
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.
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.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Dúvida sobre entrada de senha
Ok, obrigado pela dica, já fiz as correções.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 "" (E comercial ou ampersand em inglês) não aparece nos botões nem nos labels. Para isso pode utilizar o "
" duplo macro, mas terá que tratar para não inserir dois caracteres.
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.
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
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