SHAREWARE NO VB6
Mais uma vez conto com a ajuda de vcs.....
Estou tentando montar um programa DEMO no vb6, estou gerando o codigo com um identificador único de usuário, também feito em vb6:
No aplicativo demo coloquei os codigo:
Em um modulo:
Citação:Geral declaration
Option Explicit
Const GUI = [Ô]C9AA9EC4-C115-4EDC-9C19-73FDA7FFC619[Ô]
Citação:Private Sub Main()
If Command = [Ô]Ativar[Ô] Then
AtivaAplicativo (GUI)
Else
DesativarEm [Ô]24/5/2011[Ô]
End If
Citação:Public Sub AtivaAplicativo(codigo As String)
Dim chave As String
chave = Left(codigo, 8)
If Command = [Ô]Libera[Ô] Then
SaveSetting [Ô]Aplicativo[Ô], [Ô]Security[Ô], chave, codigo
End If
End Sub
Citação:[quote]Public Sub DesativarEm(ta As Date)
[ô]Desativa o programa na data informada
Dim chave As String
[ô]Gera a chave com base no codigo identificador do usuario
chave = Left(GUI, 8)
[ô]Se a chave for invalida encerra a aplicação
If GetSetting([Ô]Aplicativo[Ô], [Ô]Security[Ô], chave, GUI) <> GUI Then
MsgBox [Ô]Não é possivel executar a aplicação entre em contado com o suporte técnico[Ô], vbCritical, _
[Ô]Erro de Validação de chave : A-1[Ô]
End
End If
[ô]Se a data expirar, desativa o aplicativo
If Date >= Date Then
[ô]grava um valor invalido na chave do registro
SaveSetting [Ô]Aplicativo[Ô], [Ô]Security[Ô], chave, [Ô]A-1[Ô]
MsgBox [Ô]O periodo de demonstração terminou ! [Ô] & vbCrLf & _
[Ô] Para adquirir o sistema entre em contato com seu revendedor[Ô], vbCritical, [Ô]Erro Interno[Ô]
End
End If
End Sub[/quote]
Só que não importa a data que eu coloque para desativar, quando passo ele para o modo de execulsão ele me sa a msg: [u][Ô]O periodo de demonstração terminou !Para adquirir o sistema entre em contato com seu revendedor[Ô][/u]
alguém sab me dizer onde esta o erro?
desde já agradeço!!!!
If Date >= Date Then
Usa If Date >= DataEspecÃfica Then ....
Nota: isso aqui está errado:
DesativarEm [Ô]24/5/2011[Ô]
Você não pode ter uma data fixa no código, primeiro porque teria de compilar a todo momento o programa para enviar ao cliente. O correto é gerar a data na primeira execução. Se não existir a data em algum lugar, registro do windows, INI criptografado ou DB, você cria a data com tantos dias a partir de hoje, gravando não somente a data, mas também a hora. Assim se o cidadão retroceder o relógio do windows não funcionará, pois você deve comparar tudo, data e hora.
Citação:Nota: isso aqui está errado:
DesativarEm [Ô]24/5/2011[Ô]
Você não pode ter uma data fixa no código, primeiro porque teria de compilar a todo momento o programa para enviar ao cliente. O correto é gerar a data na primeira execução. Se não existir a data em algum lugar, registro do windows, INI criptografado ou DB, você cria a data com tantos dias a partir de hoje, gravando não somente a data, mas também a hora. Assim se o cidadão retroceder o relógio do windows não funcionará, pois você deve comparar tudo, data e hora.
como faço com essa linha de codigo então? e como faço para colocar por exemplo 15 dias apos a data do 1° acesso?
grata
Se deixar a data em função da primeira execução, não terá trabalho.
Ao executar o programa, procura no registro do windows se ele já foi iniciado. Cria uma chave para isso e se não existir a chave, então faça:
DataPrimeiraExecucao = Format(Now + 15, [Ô]dd/mm/yyyy[Ô])
Assim terá seu prazo somado a 15 dias.
não encontrei para baixar o activelok 1.5 então baixei o 1.8 .... nesse não veio o arquivo nslock15vb6.ocx, então abaixei ele sozinho, instalei e consegui colocar em meu formulario ....
estou usando os seguintes codigo!!!
Em um modulo...
Citação:Option Explicit
Sub Main()
Load frmregistro
Load frmprincipal
With frmregistro.ActiveLock1
If RegisteredUser Then
frmprincipal.Show
Else
If .LastRunDate > Now Then
MsgBox [Ô]Teste detectou que você alterou a data do sistema!...[Ô]
End
End If
If .UsedDays < 1 Then
frmregistro.Show 1
frmprincipal.Show
Else
MsgBox [Ô]Seu periodo de avaliação terminou, Registre-se...![Ô]
Unload frmregistro
Unload frmprincipal
End If
End If
End With
End Sub
No evento load do frm registro:
Citação:txtcodigodoprograma.Text = ActiveLock1.SoftwareCode
no botão de registro:
Citação:Private Sub Command1_Click()
ActiveLock1.LiberationKey = Text2.Text
If RegisteredUser Then
MsgBox [Ô]Programa registrado com sucesso![Ô]
frmprincipal.Show
frmprincipal.Caption = [Ô]Programa registrado![Ô]
Unload Me
Else
MsgBox [Ô]Código de registro inválido![Ô]
End If
End Sub
os codigos tão funcionando perfeitamente... o problema é que :
quando tento registrar o programa da erro [Ô]numero de registro invalido[Ô], para gerar o codigo de registro estou usando o Keygenerator186 que veio junto com activelok, configurei já as propriedades do activelok
•Password: teste
•LiberationKeyLenght: 16
•Software Code: 16
.SoftwareName: teste
nesse parte Select HashAlgorithm deixou a opção selecionada: SHA1AA1.... segundo alguns post que tenho lido estou fazendo tudo certo.....
não consigo achar meu erro!!!! Será que alguém pode me ajuda?
Desde já agradeço>>>>