LICENCA DE USO
olá pessoa, bom dia... preciso incluir em um sistema uma forma de bloqueio a cada 60 dias.. negociei a locação do com um cliente... então preciso controlar, por suposta falta de pagamento.....
teria como fazer isso em um arquivo txt criptografado ..
por favor. alguem teria algum exemplo...
teria como fazer isso em um arquivo txt criptografado ..
por favor. alguem teria algum exemplo...
Tem diversas formas de fazer isso companheiro, aqui no vb. mania tem exemplos
Pesquise no forum ou nos arquivos flw
t+
Pesquise no forum ou nos arquivos flw
t+
Para bloqueio local, veja o artigo Protegendo sua aplicação com o nslock em 7 etapas.
Ideal mesmo, seria a utilização de uma rotina para bloqueio remoto.
Ideal mesmo, seria a utilização de uma rotina para bloqueio remoto.
Private Sub Form_Load()
Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
[ô]** [LITAMITA USO DO SISTEMA] **
[ô]txtData = Date
[ô] BROQUEIA O SISTEMA
DTPicker1.Value = Date
If DTPicker1.Value >= CDate([Ô]30/12/2009[Ô]) Then
flag = True
FrmLogAces.cmdOK.Enabled = False
lblaviso.Visible = True
lblSisnews.Visible = False
txtSenha.Enabled = False
End If
[ô] AVISO PARA TéRMINO DO USO UM MES ANTES
DTPicker1 = Date
DTPicker1.Value = Date
If DTPicker1.Value >= CDate([Ô]30/11/2009[Ô]) Then
flag = True
Me.lblRegistro.Caption = [Ô]Atualizar o Sistema em 30/12/2009[Ô]
lblRegistro.Visible = True
End If
[ô]** [FIM DO LIMITE DE USO] **
End Sub
Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
[ô]** [LITAMITA USO DO SISTEMA] **
[ô]txtData = Date
[ô] BROQUEIA O SISTEMA
DTPicker1.Value = Date
If DTPicker1.Value >= CDate([Ô]30/12/2009[Ô]) Then
flag = True
FrmLogAces.cmdOK.Enabled = False
lblaviso.Visible = True
lblSisnews.Visible = False
txtSenha.Enabled = False
End If
[ô] AVISO PARA TéRMINO DO USO UM MES ANTES
DTPicker1 = Date
DTPicker1.Value = Date
If DTPicker1.Value >= CDate([Ô]30/11/2009[Ô]) Then
flag = True
Me.lblRegistro.Caption = [Ô]Atualizar o Sistema em 30/12/2009[Ô]
lblRegistro.Visible = True
End If
[ô]** [FIM DO LIMITE DE USO] **
End Sub
Citação::
Para bloqueio local, veja o artigo Protegendo sua aplicação com o nslock em 7 etapas.
Ideal mesmo, seria a utilização de uma rotina para bloqueio remoto.
Concordo TECLA o ideal mesmo seria estilo uma autenticação remota ... Porém acredita q um cliente muito Filhu ... da mãe. rsrs
Instalou um firewall na máquina só para bloquear as saÃdas do meu executável.
Esse negócio de licença é algo q eu ainda estou pensando em como implantar viu
Amigo uma das melhores forma que acho é uma geração de chaves(licenças).
Você poderia gerar as chaves de licenças anuais ou mensais e enviar para seu cliente sem essa chave cadastrada no banco de dados ou algum arquivo txt o sistema não funciona.
A chave deve ser criptografada contendo a data que você gerou a chave a versão do sistema, mais a data que expira ou se for fazer por computador pegar o endereço MAC + Numero do HD, com essas informação você bloqueia completamente seu sistema.
Então você cria um sistema para gerar essa chave e um sistema embutido no cliente para gravar essa chave.
Ao cadastrar a chave(licença) no cliente o sistema deve validar se a data que você gerou é a mesma data que está no computador, pois ele pode ter voltado a data e também você deve fazer uma forma de você mesmo contar os dias porque ele sempre pode voltar a data.
Essa seria uma ideia!
Abraço
Você poderia gerar as chaves de licenças anuais ou mensais e enviar para seu cliente sem essa chave cadastrada no banco de dados ou algum arquivo txt o sistema não funciona.
A chave deve ser criptografada contendo a data que você gerou a chave a versão do sistema, mais a data que expira ou se for fazer por computador pegar o endereço MAC + Numero do HD, com essas informação você bloqueia completamente seu sistema.
Então você cria um sistema para gerar essa chave e um sistema embutido no cliente para gravar essa chave.
Ao cadastrar a chave(licença) no cliente o sistema deve validar se a data que você gerou é a mesma data que está no computador, pois ele pode ter voltado a data e também você deve fazer uma forma de você mesmo contar os dias porque ele sempre pode voltar a data.
Essa seria uma ideia!
Abraço
é simples vincula sua data com a data atual no seu executável
E manda pra ele apenas o arquivo.EXE
Ou ele atualiza ou trabalha com as datas desatualizadas.
Amigo tb to fazendo isso , to criando uma pasta e dentro contadores de acessos
tem exemplo no forum
tem um exemplo utilizando um contador ...
so necessitaria fazer um IF pra arrumar a questao do meu
vo colar pra voce
Abs
Marcelo Fazan
Form Load *************************************************************
Private Sub Form_Load()
[ô]--------------------------------------------------------------------------------------------------------------------------------
[ô]montando o serial em tempo de execução
vhdn1 = String$(255, Chr$(0)) [ô]nome do HD
vhdt1 = String$(255, Chr$(0)) [ô]tipo de HD
GetVolumeInformation [Ô]C:\[Ô], vhdn1, 255, vhds1, 0, 0, vhdt1, 255 [ô]obtendo informações do HD
[ô]transferindo os dados
Text1.Text = vhds1 [ô]numero do HD
[ô]--------------------------------------------------------------------------------------------------------------------------------
[ô]obtendo o serial gravado no arquivo INI
[ô]Text2.Text = ReadINI([Ô]serial[Ô], [Ô]control[Ô], [Ô]C:\WINDOWS\Tmp.txf[Ô])
Text2.Text = vhds1
[ô]obtendo o numero de aberturas do arquivo INI
Text3.Text = ReadINI([Ô]acessos[Ô], [Ô]Contador[Ô], [Ô]C:\WINDOWS\Tmp.txf[Ô])
End Sub
Botao command OK GRavar *****************************
Private Sub cmdOK_Click()
[ô]Campo vazio
If Trim(TxtLogin) = [Ô][Ô] Or Trim(TxtSenha) = [Ô][Ô] Then
MsgBox [Ô]Preencha os campos para efetuar o login do usuário.[Ô], vbExclamation, [Ô]Campo vazio[Ô]
Exit Sub
End If
[ô]Validar usuário no banco de dados
If Conectar = True Then
If LoginUsuario(TxtLogin, TxtSenha) = True Then
[ô]verifica as licencas de acesso pelo numero do HD
If Text1.Text <> Text2.Text Then
[ô]mensagem
MsgBox [Ô]A licença não confere ...[Ô], , [Ô][Ô]
[ô]encerra
End
Else
[ô]verifica o numero de acessos ao sistema
If Text3.Text <= 59 Then
[ô]se conferem acessa o sistema
[ô]abre o form do menu principal
[ô].Show
[ô]grava o novo acesso
Call WriteINI([Ô]acessos[Ô], [Ô]Contador[Ô], Text3.Text + 1, [Ô]C:\WINDOWS\Tmp.txf[Ô])
[ô]fecha o form atual
Unload Me
Else
[ô]mensagem
MsgBox [Ô]Sua licença expirou ...[Ô], , [Ô][Ô]
[ô]encerra
End
End If
End If
Else
MsgBox [Ô]Usuário/Senha não cadastrada! Tente novamente.[Ô], vbExclamation, [Ô]Login do Usuário[Ô]
TxtLogin.SetFocus
Call Desconectar
End If
Else
MsgBox [Ô]Ocorreu um erro ao acessar a base de dados. Tente novamente.[Ô], vbExclamation, [Ô]Login do Usuário[Ô]
Call Desconectar
End If
End Sub
no Modulo *******************************************
[ô]---funcções---[ô]
[ô]leitura do INI
Public Function ReadINI(Secao As String, Entrada As String, Arquivo As String)
Dim retlen As String
Dim Ret As String
Ret = String$(255, 0)
retlen = GetPrivateProfileString(Secao, Entrada, [Ô][Ô], Ret, Len(Ret), Arquivo)
Ret = Left$(Ret, retlen)
ReadINI = Ret
End Function
[ô]gravação do INI
Public Sub WriteINI(Secao As String, Entrada As String, Texto As String, Arquivo As String)
WritePrivateProfileString Secao, Entrada, Texto, Arquivo
End Sub
Na parte de Gravar o Acesso
precisa al assim :
if voce entro hoje no sistema then
Unload Me
else
Call WriteINI([Ô]acessos[Ô], [Ô]Contador[Ô], Text3.Text + 1, [Ô]C:\WINDOWS\Tmp.txf[Ô])
endif
nao sei se tem como verificar isso em variavel se o contador pula a data do dia nao grava no contador
somente no outro dia conforme a data do computador
ele ja pega o codigo do HD ...
ai taco o que tem no contador = o que esta gravada na vinchester ... e deixo invisivel
tambem pode usar o contador pra tela e deixar envisivel pro visual
tipo ..... hoje fiz um assim
se nao tem os arquivos
na inicializacao crio eles
quando a pessoa tentar entrar no sistema
vai pedir revalide sua chave , de 16 digitos
se ja constar , ele fala que ta repetido e nao registra
ou mesmo esta com numero errado
ai cola a chave nova , o contador funciona , toda hora que entra no sistema
chegando no 0 novamente pede a chave
sucessivamente agora falta somente esse if para nao fazer na entrada do sistema e sim na troca de dias cada dia diminui 1
tem exemplo no forum
tem um exemplo utilizando um contador ...
so necessitaria fazer um IF pra arrumar a questao do meu
vo colar pra voce
Abs
Marcelo Fazan
Form Load *************************************************************
Private Sub Form_Load()
[ô]--------------------------------------------------------------------------------------------------------------------------------
[ô]montando o serial em tempo de execução
vhdn1 = String$(255, Chr$(0)) [ô]nome do HD
vhdt1 = String$(255, Chr$(0)) [ô]tipo de HD
GetVolumeInformation [Ô]C:\[Ô], vhdn1, 255, vhds1, 0, 0, vhdt1, 255 [ô]obtendo informações do HD
[ô]transferindo os dados
Text1.Text = vhds1 [ô]numero do HD
[ô]--------------------------------------------------------------------------------------------------------------------------------
[ô]obtendo o serial gravado no arquivo INI
[ô]Text2.Text = ReadINI([Ô]serial[Ô], [Ô]control[Ô], [Ô]C:\WINDOWS\Tmp.txf[Ô])
Text2.Text = vhds1
[ô]obtendo o numero de aberturas do arquivo INI
Text3.Text = ReadINI([Ô]acessos[Ô], [Ô]Contador[Ô], [Ô]C:\WINDOWS\Tmp.txf[Ô])
End Sub
Botao command OK GRavar *****************************
Private Sub cmdOK_Click()
[ô]Campo vazio
If Trim(TxtLogin) = [Ô][Ô] Or Trim(TxtSenha) = [Ô][Ô] Then
MsgBox [Ô]Preencha os campos para efetuar o login do usuário.[Ô], vbExclamation, [Ô]Campo vazio[Ô]
Exit Sub
End If
[ô]Validar usuário no banco de dados
If Conectar = True Then
If LoginUsuario(TxtLogin, TxtSenha) = True Then
[ô]verifica as licencas de acesso pelo numero do HD
If Text1.Text <> Text2.Text Then
[ô]mensagem
MsgBox [Ô]A licença não confere ...[Ô], , [Ô][Ô]
[ô]encerra
End
Else
[ô]verifica o numero de acessos ao sistema
If Text3.Text <= 59 Then
[ô]se conferem acessa o sistema
[ô]abre o form do menu principal
[ô].Show
[ô]grava o novo acesso
Call WriteINI([Ô]acessos[Ô], [Ô]Contador[Ô], Text3.Text + 1, [Ô]C:\WINDOWS\Tmp.txf[Ô])
[ô]fecha o form atual
Unload Me
Else
[ô]mensagem
MsgBox [Ô]Sua licença expirou ...[Ô], , [Ô][Ô]
[ô]encerra
End
End If
End If
Else
MsgBox [Ô]Usuário/Senha não cadastrada! Tente novamente.[Ô], vbExclamation, [Ô]Login do Usuário[Ô]
TxtLogin.SetFocus
Call Desconectar
End If
Else
MsgBox [Ô]Ocorreu um erro ao acessar a base de dados. Tente novamente.[Ô], vbExclamation, [Ô]Login do Usuário[Ô]
Call Desconectar
End If
End Sub
no Modulo *******************************************
[ô]---funcções---[ô]
[ô]leitura do INI
Public Function ReadINI(Secao As String, Entrada As String, Arquivo As String)
Dim retlen As String
Dim Ret As String
Ret = String$(255, 0)
retlen = GetPrivateProfileString(Secao, Entrada, [Ô][Ô], Ret, Len(Ret), Arquivo)
Ret = Left$(Ret, retlen)
ReadINI = Ret
End Function
[ô]gravação do INI
Public Sub WriteINI(Secao As String, Entrada As String, Texto As String, Arquivo As String)
WritePrivateProfileString Secao, Entrada, Texto, Arquivo
End Sub
Na parte de Gravar o Acesso
precisa al assim :
if voce entro hoje no sistema then
Unload Me
else
Call WriteINI([Ô]acessos[Ô], [Ô]Contador[Ô], Text3.Text + 1, [Ô]C:\WINDOWS\Tmp.txf[Ô])
endif
nao sei se tem como verificar isso em variavel se o contador pula a data do dia nao grava no contador
somente no outro dia conforme a data do computador
ele ja pega o codigo do HD ...
ai taco o que tem no contador = o que esta gravada na vinchester ... e deixo invisivel
tambem pode usar o contador pra tela e deixar envisivel pro visual
tipo ..... hoje fiz um assim
se nao tem os arquivos
na inicializacao crio eles
quando a pessoa tentar entrar no sistema
vai pedir revalide sua chave , de 16 digitos
se ja constar , ele fala que ta repetido e nao registra
ou mesmo esta com numero errado
ai cola a chave nova , o contador funciona , toda hora que entra no sistema
chegando no 0 novamente pede a chave
sucessivamente agora falta somente esse if para nao fazer na entrada do sistema e sim na troca de dias cada dia diminui 1
Tópico encerrado , respostas não são mais permitidas