EXPIRA SE CLIENTE NAO PAGAR

DAVIDNUNES 22/10/2009 13:44:29
#326065
alguem sabe como posso fazer com que o cliente tenha que digitar uma senha todo mes se ele não pagar eu não passo a senha e o programa para de funcionar
DANIELCPAETE 22/10/2009 14:42:06
#326073
eu costumo trancar o sistema todo mês direto no executável e quando o cliente paga mando outro executável com o novo tempo de funcionamento.
RICK 22/10/2009 16:01:18
#326083
DAVIDNUNES, boa tarde.

Não sei qual BD você utiliza para essa aplicação, mas uma sugestão simples seria criar uma tabela em que toda vez que o aplicativo é inciado insere a
data atual, fazendo uma verificação se é maior que o último, se for verifica se é maior que a data de expiração, se for pede senha para liberar acesso.

Detalhes:
Primeiro você terá que estipular uma data minima. Ex: Se você disponibilizar para seu cliente no dia 01/01/2010, a tabela já deverá ter essa data no campo [Ô]Data_Ultimo_Acesso[Ô].
O ideal será trabalhar com a data no formato ddmmyyyy hhmmss(Date & Time).
Outro campo será a [Ô]Data_Expiracao[Ô]. No exemplo acima seria 01/02/2010(mensal).

A partir daí cria um módulo que solicita senha. Fica a seu critério a criação das senhas.
O cliente pagará para mais um mês e você libera a senha. O módulo que receber a senha
verificará(de acordo com os seus critérios) se é válida, se for irá atualizar a tabela acrescentando um mês no campo [Ô]Data_Expiracao[Ô] (Função DateAdd) e
executar novamente a verificação inicial, liberando assim a utilização para mais um mês.

Essa é uma idéia preliminar, eu ainda não programei, mas a [Ô]priori[Ô] é o que pretendo utilizar futuramente em meus sistemas.


Att.

RICK
LEOBEVI 22/10/2009 16:35:59
#326094
DavidNunes, o que faço em minha aplicação é toda vez em que ele abrir o executável ele abre um arquivo texto com as informções da data de expiração e a data do último acesso. Essas informções são criptografadas, não é inteligível para o cliente. Verifico se a data de expiração é igual ou menor que a data atual deixo até uns 3 dias passar da data se ultrapassou e o cliente não pagou trava o sistema. Utilizo a data de ultimo acesso, pois se o cliente alterar a data para uma data anterior o sistema também trava.

é assim que utilizo em minhas aplicações.

att.

leobevi
LEOBEVI 22/10/2009 16:40:23
#326095
Complementando, o cliente pagando envio o arquivo txt atualizado para que ele coloque na pasta do sistema.

Estou pensando em fazer algo como deixar este arquivo em um server na Internet, onde o sistema pelo menos uma vez ao dia leia diretamente do server e valide o arquivo.

Assim não precisarei ficar enviando todo mês para o cliente o arquivo txt.

att.

Leobevi
NILTON.VIANNA 22/10/2009 17:35:16
#326102
Dim RS As New ADODB.Recordset
Private Sub Form_Load()
[ô]** [LITAMITA USO DO SISTEMA] **
txtData = Date
[ô] BROQUEIA O SISTEMA
DTPicker1.Value = Date
If DTPicker1.Value >= CDate([Ô]30/9/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/8/2009[Ô]) Then

flag = True
Me.lblRegistro.Caption = [Ô]Atualizar o Sistema em 30/08/2009[Ô]
lblRegistro.Visible = True

End If
[ô]** [FIM DO LIMITE DE USO] **

End Sub

Private Sub cmdCancel_Click()
CnSql.Close
Close
Set Variavel = Nothing
Me.Hide
End
End Sub

Private Sub cmdOK_Click()
Set RS = New ADODB.Recordset
Dim Resp As Byte
RS.Open [Ô]Select NomeLogin, Senha, Acesso FROM CadUsuario[Ô], CnSql, adOpenKeyset, adLockOptimistic

While RS.EOF <> True

If Me.txtSenha = RS!Senha And Me.txtSenha = RS!Senha Then

[ô]** [BROQUEIA USUÁRIO] **
txtAcesso = RS!Acesso
If Me.txtAcesso = [Ô]Usuário[Ô] Then
flag = True

MenuSisnews.SubCadUsuario.Enabled = False
MenuSisnews.SubBkaup.Enabled = False
MenuSisnews.GB3.Enabled = False

End If
[ô]** [FIM DO BROQUEIA USUÁRIO] **


flag = True
MenuSisnews.StatusBar.Panels(2).Text = RS!NomeLogin
End If

RS.MoveNext
Wend
If flag = True Then
Me.Hide
[ô][ô][ô]Resp = MsgBox([Ô]Tipo de Acesso: [Ô] & txtTipo & [Ô] [Ô], vbQuestion, [Ô] Sisnews Sistemas[Ô])

Unload FrmLogAces
MenuSisnews.Show
Else
MsgBox [Ô]Senha do Usuário invalida ou negada ! [Ô], vbInformation, [Ô] Login de Acesso[Ô]
txtSenha.Text = [Ô][Ô]
txtSenha.SetFocus
End If
RS.Close
End Sub

TECLA 22/10/2009 21:09:01
#326119
Resposta escolhida
Um pouco de leitura do artigo abaixo, mas algumas linhas de código... é possível fazer o que deseja usando o componente NSLOCK.
VB - Protegendo sua aplicação com o nslock em 7 etapas
RICKSOUSA 23/10/2009 10:00:24
#326143
tecla eu gostei desse nslock mais pelo que eu entendi la no site do macoratti, la ele ta mostrando como ativar a aplicação no caso quando deixamos o programa para teste, ai depois de ativado ele vai ficar direto é isso que entendi, mais e no caso de a cada 1 mes ele pedir para registrar tem como????
IDELVAN 23/10/2009 10:41:22
#326145
1. Se vc tiver utilizando um banco de dados em ACCESS esquece, pq é fácil quebrar a senha de proteção dele.
2. Faça amarrações no sistema pelo Nr Serial do HD e grave ele em alguma pasta do Windows.. uma pasta oculta...
3. Grave em um arquivo de texto uma data de validade.
4. No banco de dados (Pref MySQL) crie uma tabela com essa data de validade.
5. Crie uma tabela com diversas Key's (Chaves) alfanuméricas para que todo o mês o cliente digite.
6. Encontrando a chave, o sistema entende que a mensalidade foi paga e prorroga para mais 1 mês o uso do sotware.
7. Se por acaso, um usuário experto, descobrir o arquivo .txt que contem a data de expiração e alterar, e a data com certeza
vai ser diferente da tabela de KEY's, o sistema será travado total porque foi violada a data.

Isso é apenas uma regra que passou pela minha cabeça, mas acredito, que é melhor utilizar algum método de criptografia.

Abraços.
Tópico encerrado , respostas não são mais permitidas