CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Lailton, colocar o get somente leitura tudo bem, mas se o cliente ler o cartão no bloco de notas por exemplo, irá pegar o código e digitar normalmente no get somente de leitura. A questão do tempo de digitação estou analisando. Obrigado. citação:Cleiton, Se me permite comentar. Nao seria possivel colocar o "get" em modo somente leitura ? Ou ate mesmo voc^e fazer um controle do codigo inserido isso ( em logica ) me parece facil e rapido de se fazer. Exemplo quando voc^e digita um numero por exmeplo de uns 13 caracter vc tende a demorar cerca de um 5 seg. ja um leitor acredito que entre 1 e 2. acho q nesse intervalo de tempo vc pode ( AMARAR ) o sistema e saber se alguem esta digitando ou o leitor que esta informando. Pois se vem do leitor vc deixaria continuar, se fose digitado ( 'e pq alguem teria copiado do bloco de notas ). vc tambem pode checar o CTRL+V ( que provavelmente a pessoa esteja usando ) e com isso nao aceitar o codigo. O que vc acha ?? ( Se viajei desculpa, apenas ideias. ) Abraco O código de barras estou gerando com uma criptografia minha, e e informo esse código no coreldraw. Só que, se o cliente ler este cartão no bloco de notas, dar um CTRL+C no conteúdo lido pelo leitor e ir no campo que meu sistema pede pra passar o cartão de liberação e der um CTRL+V, ele irá passar normalmente. Pra ficar assim, o usuário jamais poderia ter acesso a este cartão, mas fica difÃcil, funciona por algum tempo, depois o supervidor de caixa relaxa e deixa o cartão em algum lugar, o operador vai lá e lê o cartão no bloco de notas, ai já era... Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Att. Lailton Fernando Mariano E-Mail: developer@lailton.com.br | Msn: lailton.developer@hotmail.com xHarbour 1.2.1 | Fivewin 11.1 | Borland 5.8.2 | MySQL id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Ercicley, o empresário não quer nem saber. Sabe que os funcionários estão burlando o sistema, ele quer barrar mesmo sabendo que a pessoa não é de confiança para estar no seu quadro de funcinários. Obrigado. citação:Ainda sou da opinião que não se deva fazer nada, assim como o Frazato disse. 1 - se o funcionário da empresa está dando de malandro, a empresa que tem que resolver. 2 - se o responsável é irresponsável e relaxa com o cartão, a empresa que tem que resolver. Como um amigo diz, liga o modo fod*-se, isso não é problema seu, a não ser que estejam pagando para você fazer algo, mas mesmo assim. Quase nada é imburlável. ^^ Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Rone qual padrão de código de barras consegue imprimir alguma senha criptografada? Code128, Code39... citação:cCodCriptografado := Encrypt( cCodigo, "PADRAO_PARA_CRIPTOGRFAR" ) Imprime cCodCriptografado como CODIGO DE BARRAS PARA O CARTAO Depois no módulo para LER O CARTAO cCodDescriptografado := Decrypt( cCodLIDO, "PADRAO_PARA_CRIPTOGRAFAR" ) Verificar no banco de dados... id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
dorneles Posted June 13, 2012 Report Share Posted June 13, 2012 Cleiton, me chama no skype que ti passo uma funcao para isso. FW 2.6 + HB 0.9950 + Pelles + Clipper 5.3 + VLib + xDevStudio Quote Link to comment Share on other sites More sharing options...
sambomb Posted June 13, 2012 Report Share Posted June 13, 2012 citação:Samir, como bloquear CTRL+C e CTRL+V dentro de um get? citação:coloque um código acima de 13 digitos preferencialmente e verifique o tempo entre o inicio da digitação e o final, bloqueie o ctrl+V, shift+insert e botão direito do mouse e assim só se o usuário digitar EXTREMAMENTE RÃPIDO. Pode colocar 2 segundos ou 1,5 caso use milisegundos tb... RCA Sistemas - Itaocara - RJ Editado por - sambomb on 12/06/2012 17:56:44 id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote>Na TGet.prg tem um tratamento para isso já la no método KeyDown Mas acho que seria assim: oget:bKeyDown := { |nKey| TrataTecla(nKey) } Function TrataTecla( nKey ) If nKey = Chr("c") .Or.; nKey = Chr("C") .Or.; nKey = Chr("v") .Or.; nKey = Chr("V") If GetKeyState( VK_CONTROL ) oClip := TClipBoard():New() oClip:SetText("ERRO") cGet := "ERRO" oGet:Refresh() end end Return id=code>id=code> RCA Sistemas - Itaocara - RJ Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2012 Report Share Posted June 13, 2012 citação: citação:Samir, como bloquear CTRL+C e CTRL+V dentro de um get? citação:coloque um código acima de 13 digitos preferencialmente e verifique o tempo entre o inicio da digitação e o final, bloqueie o ctrl+V, shift+insert e botão direito do mouse e assim só se o usuário digitar EXTREMAMENTE RÃPIDO. Pode colocar 2 segundos ou 1,5 caso use milisegundos tb... RCA Sistemas - Itaocara - RJ Editado por - sambomb on 12/06/2012 17:56:44 id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote>Na TGet.prg tem um tratamento para isso já la no método KeyDown Mas acho que seria assim: oget:bKeyDown := { |nKey| TrataTecla(nKey) } Function TrataTecla( nKey ) If nKey = Chr("c") .Or.; nKey = Chr("C") .Or.; nKey = Chr("v") .Or.; nKey = Chr("V") If GetKeyState( VK_CONTROL ) oClip := TClipBoard():New() oClip:SetText("ERRO") cGet := "ERRO" oGet:Refresh() end end Return id=code>id=code> RCA Sistemas - Itaocara - RJ id=quote>id=quote>Mesmo que voce impeça a copia, basta o usuário passar o cartão em um leitor de codigos de barras de teclado, que ele terá o codigo e a senha do supervisor pelo prompt de comando ou em um editor de textos for windows e ai ele digitará os dados no get. Melhor é SOMAR caracteres especiais na senha ou no codigo do operador... é só uma idéia... João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Theotokos Posted June 13, 2012 Report Share Posted June 13, 2012 code128 citação:Rone qual padrão de código de barras consegue imprimir alguma senha criptografada? Code128, Code39... citação:cCodCriptografado := Encrypt( cCodigo, "PADRAO_PARA_CRIPTOGRFAR" ) Imprime cCodCriptografado como CODIGO DE BARRAS PARA O CARTAO Depois no módulo para LER O CARTAO cCodDescriptografado := Decrypt( cCodLIDO, "PADRAO_PARA_CRIPTOGRAFAR" ) Verificar no banco de dados... id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote> Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Obrigado Dorneles. citação:Cleiton, me chama no skype que ti passo uma funcao para isso. FW 2.6 + HB 0.9950 + Pelles + Clipper 5.3 + VLib + xDevStudio id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
sambomb Posted June 13, 2012 Report Share Posted June 13, 2012 coloque caracteres especias como Asc(1), Asc(2), etc... bloqueie o CTRL, SHIFT e ALT no bKeyDown e pronto não tem como colar caracteres especiais pois para digita-los pelo teclado é ALT+número RCA Sistemas - Itaocara - RJ Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Obrigado, esse padrão mesmo que estou utilizando. citação:code128 citação:Rone qual padrão de código de barras consegue imprimir alguma senha criptografada? Code128, Code39... citação:cCodCriptografado := Encrypt( cCodigo, "PADRAO_PARA_CRIPTOGRFAR" ) Imprime cCodCriptografado como CODIGO DE BARRAS PARA O CARTAO Depois no módulo para LER O CARTAO cCodDescriptografado := Decrypt( cCodLIDO, "PADRAO_PARA_CRIPTOGRAFAR" ) Verificar no banco de dados... id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote> id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Obrigado Kapiaba citação: citação: citação:Samir, como bloquear CTRL+C e CTRL+V dentro de um get? citação:coloque um código acima de 13 digitos preferencialmente e verifique o tempo entre o inicio da digitação e o final, bloqueie o ctrl+V, shift+insert e botão direito do mouse e assim só se o usuário digitar EXTREMAMENTE RÃPIDO. Pode colocar 2 segundos ou 1,5 caso use milisegundos tb... RCA Sistemas - Itaocara - RJ Editado por - sambomb on 12/06/2012 17:56:44 id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote>Na TGet.prg tem um tratamento para isso já la no método KeyDown Mas acho que seria assim: oget:bKeyDown := { |nKey| TrataTecla(nKey) } Function TrataTecla( nKey ) If nKey = Chr("c") .Or.; nKey = Chr("C") .Or.; nKey = Chr("v") .Or.; nKey = Chr("V") If GetKeyState( VK_CONTROL ) oClip := TClipBoard():New() oClip:SetText("ERRO") cGet := "ERRO" oGet:Refresh() end end Return id=code>id=code> RCA Sistemas - Itaocara - RJ id=quote>id=quote>Mesmo que voce impeça a copia, basta o usuário passar o cartão em um leitor de codigos de barras de teclado, que ele terá o codigo e a senha do supervisor pelo prompt de comando ou em um editor de textos for windows e ai ele digitará os dados no get. Melhor é SOMAR caracteres especiais na senha ou no codigo do operador... é só uma idéia... João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Obrigado à todos que me deram dicas, acho que vou associar códigos asc e validação do tempo de digitação, como alguns citaram aqui. Inclusive o Dorneles me passou um exemplo bem prático. Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2012 Report Share Posted June 13, 2012 citação:Obrigado à todos que me deram dicas, acho que vou associar códigos asc e validação do tempo de digitação, como alguns citaram aqui. Inclusive o Dorneles me passou um exemplo bem prático. Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote>PS: Quando funcionando perfeito, poste um exemplo para ajudar os demais. Abs, obg. João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2012 Report Share Posted June 13, 2012 Veja se ajuda também: http://msdn.microsoft.com/pt-br/library/cc580676.aspx http://www.baixaki.com.br/download/barra-facil.htm João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Editado por - kapiaba on 13/06/2012 15:44:45 Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 Quando começo a digitação da senha, executo uma função que conta quantos segundos já se passaram, se já se passou x segundos do momento da digitação inicial até o enter ou clique no botão confirma, o sistema considera a senha como incorreta. Se o Dorneles autorizar eu posto aqui, pois ele que me passou a rotina. Lembrando que o Samir também citou utilizar este processo. Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2012 Report Share Posted June 13, 2012 citação:Quando começo a digitação da senha, executo uma função que conta quantos segundos já se passaram, se já se passou x segundos do momento da digitação inicial até o enter ou clique no botão confirma, o sistema considera a senha como incorreta. Se o Dorneles autorizar eu posto aqui, pois ele que me passou a rotina. Lembrando que o Samir também citou utilizar este processo. Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b id=quote>id=quote>Se o Dorneles não permitir, vou anotar aqui, e quando ele pedir alguma coisa aqui, será: VAPT e VUPT nele... kkkkkkkkkkkkkkkkkkkkkk abs, João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
sambomb Posted June 13, 2012 Report Share Posted June 13, 2012 oGet:bKeyDown := {|nKey| TrataTecla( nKey ) } function TrataTecla( nKey ) If Len( oSeuGet:oGet:Buffer ) <= 1 cTempoInicial := Time() else If nKey = 13 //-- Leitor de código de barras da Enter no final If Secs( ElapTime(cTempoInicial,Time() ) ) > 2 Msg("Erro") end end end return nil id=code>id=code> RCA Sistemas - Itaocara - RJ Editado por - sambomb on 14/06/2012 08:15:13 Quote Link to comment Share on other sites More sharing options...
CleitonSH Posted June 13, 2012 Author Report Share Posted June 13, 2012 If Secs( ElapTime(cTempoInicial,Time()) ) > 2 Msg("Erro") end citação: oGet:bKeyDown := {|nKey| TrataTecla( nKey ) } function TrataTecla( nKey ) If Len( oSeuGet:oGet:Buffer ) <= 1 cTempoInicial := Time() else If nKey = 13 //-- Leitor de código de barras da Enter no final If Secs( ElapTime(cTempoInicial,Time) ) > 2 Msg("Erro") end end end return nil id=code>id=code> RCA Sistemas - Itaocara - RJ id=quote>id=quote>Cleiton FWH906+xHarbour, MySql, WorkShop, PellesC, FW20d+Clipper5.2+Clip53b Quote Link to comment Share on other sites More sharing options...
fladimir Posted June 14, 2012 Report Share Posted June 14, 2012 citação:Quando começo a digitação da senha, executo uma função que conta quantos segundos já se passaram, se já se passou x segundos do momento da digitação inicial até o enter ou clique no botão confirma, o sistema considera a senha como incorreta. Se o Dorneles autorizar eu posto aqui, pois ele que me passou a rotina. Lembrando que o Samir também citou utilizar este processo. id=quote>id=quote>Senhores analisando todas as postagens, mesmo que as senhas sejam criptografadas, o q dificulta mas não resolve, pois podem conseguir através de cópia/digitação, em bloco de notas ou outros e com isto consequentemente o sistema iria verificar q a STRING mesmo q criptografada ao ser descriptografada e validada estará correta autorizando determinada função.... A melhor alternativa, no meu ponto de vista, e q o colega definiu através do mix de idéias/sugestões acima expostas em sua citação, as quais transcrevo abaixo: - Controle do tempo de inserção da senha, se for rápido presume-se q veio do leitor (seja serial, usb ou ps/2) se demorar presume-se que esta sendo digitado. - Ao gerar os cartões com código em código de barras inserir antes da string do usuário uns 3 caracteres ASC de acesso somente através do ALT + CÓDIGO ASCII, que o usuário em geral, provavelmente não conseguiria, a não ser que tivesse conhecimento de códigos ASCII. - Bloquear o CTRL+V, SHIFT+INSERT, botão direito colar - Controle de LOG do que esta sendo feito. - E por ultimo se com tudo isso acima o usuário/operador de caixa conseguir burlar, ai entra na sugestão de A EMPRESA TEM Q RESOLVER, q seria o ideal desde o inÃcio, mas existe uma 'pequena' distância entre o IDEAL e o REAL, ainda mais quando se trata em alguns casos com clientes com "caracterÃsticas especiais" ou "delicados". Se não estiver esquecendo nada acredito q estejam listadas a sÃntese das idéias dos colegas ao longo das postagens deste tópico. []´s Quote Link to comment Share on other sites More sharing options...
sambomb Posted June 14, 2012 Report Share Posted June 14, 2012 Fladimir sintetizando mais ainda seria: No código de barras ter caracter não digitável Asc(1) a Asc(31) Bloquear: CTRL/SHIFT/ALT e botão direito do mouse Verificar o tempo de digitação(opcional) Caso CTRL/SHIFT/ALT/ botão direito estejam bloqueados não vai ser possÃvel fazer os caracteres especiais e nem colados com CTRL+V ou SHIFT+INSERT ou pelo botão direito RCA Sistemas - Itaocara - RJ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.