SHAREWARE NO VB6

ANABON0106 24/05/2011 15:39:18
#374854
Olá pessoal boa tarde;

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!!!!
LUIS.HERRERA 24/05/2011 16:18:21
#374857
Claro aqui está o problema.

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.
ANABON0106 24/05/2011 16:31:34
#374859
Obrigada LUIS HERRERA, a 1° parte entendi e até já mudei aki... mas naum entendi essa parte

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
LUIS.HERRERA 24/05/2011 17:32:14
#374865
Disse que estava errado, porque deixou uma data fixa no código, então tem que recompilar a cada cliente que enviar o arquivo.

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.
ANABON0106 27/05/2011 14:37:20
#375165
oLÁ LUIS HERRERA obrigada pela dica... entendi .... só que descidi fazer isso atravez do actilok, pois achei mas seguro ....

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>>>>


Tópico encerrado , respostas não são mais permitidas