USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Programa Expirar
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 31/05/2005 17:38 hs   
Pessoal pegeui este código na internet, que grava no registro do windows a data que o programa começou a rodar, e depois de um certo tempo ele  expira, mas não entendi o código, eu queria que o programa após 1 ano de a mensagem de expirou..
Através deste código tem como:
Dim vData                    As String
    Dim vData1                   As Date
    Dim vData2                   As Date
    Dim vData3                   As Date
    Dim resultado                As String
    Dim vDataInicial             As String
    Dim vDataFinal               As String
    Dim vDataRet                 As String
    Dim vPeríodo                 As String
    vPeríodo = "100"
    vDataInicial = GetSetting("HKEY_LOCAL_MACHINE", "TravarVei", "Trava")
    vDataFinal = Format(Date, "dd/mm/yyyy")
    If vDataInicial = "" Then
        vDataInicial = Format(Date, "dd/mm/yyyy")
        SaveSetting "HKEY_LOCAL_MACHINE", "TravarVei", "Trava", vDataInicial
    End If
    vData1 = vDataInicial
    If vDataFinal = "" Then
        resultado = "0"
    Else
        vData2 = vDataFinal
        resultado = vData2 - vData1
    End If
    If vPeríodo <= resultado Then
        MsgBox "Problemas com o Windows" & vbCrLf & "danificaram da Base de Dados", vbInformation, "SISGEP -> A T E N Ç Ã O !!!"
        SaveSetting "HKEY_LOCAL_MACHINE", "TravarVei", "TravaDataFin", vDataFinal
        ErroPrograma
        End
    End If
    vDataRet = GetSetting("HKEY_LOCAL_MACHINE", "TravarVei", "TravaDataRet")
    'vData3 = vDataRet
    If vDataRet <> "" Then
        MsgBox "Problemas com o Windows" & vbCrLf & "danificaram da Base de Dados", vbInformation, "SISGEP -> A T E N Ç Ã O !!!"
        ErroPrograma
        End
    End If
    vData = Format(Date, "dd/mm/yyyy")
    If vData < vData1 Then
        MsgBox "Problemas com o Windows" & vbCrLf & "danificaram da Base de Dados", vbInformation, "SISGEP -> A T E N Ç Ã O !!!"
        SaveSetting "HKEY_LOCAL_MACHINE", "TravarVei", "TravaDataRet", vData
        ErroPrograma
        End
    End If
Preciso modificar algo?
para que expire em um ano?
Agardeço pela atenção
   
Sérgio Jr.
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 31/05/2005 19:24 hs            
Boa tarde amigo !!!
Bem não testei o codigo para ver se está funcionando direito, mas pelas as variáveis usadas parece que a variavel  vPeríodo = "100"  quer dizer que o limite é de 100 dias, então se vc quer em um ano muda para vPeríodo = "365"...
 
Obs: Como eu falei, não testei o código para ver se funciona, estou apenas tentando tratar as variaveis....
 
Tentei...
   
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 01/06/2005 09:37 hs   
Sim amigo sérgio eu também verifiquei isso, e também simplifiquei um pouco, ficou assim:
Dim resultado As String
    Dim vDataInicial As String
    Dim vDataFinal As String
    Dim vPeríodo As String
    'estou definindo por padrão que a cada ano irá pedir novamente um código
    vPeríodo = "365"
    vDataInicial = GetSetting("HKEY_LOCAL_MACHINE", "Vb_Sistema", "Data Doc")
    vDataFinal = Format(Date, "dd/mm/yyyy")
    If vDataInicial = "" Then
        vDataInicial = Format(Date, "dd/mm/yyyy")
        SaveSetting "HKEY_LOCAL_MACHINE", "Vb_Sistema", "Data Doc", vDataInicial
        Exit Sub
    End If
    If vDataFinal = "" Then
        resultado = "0"
    Else
        resultado = DateDiff("d", Format(vDataInicial, "dd/mm/yyyy"), Format(vDataFinal, "dd/mm/yyyy"))
    End If
    If vPeríodo <= resultado Then
    MsgBox "O Prazo de Licença expirou, entre em contato com o Administrador para nova instalação"""
        ' aqui vc pede o novo código, utilizando aquele código que te enviei
        ' na verdade teria que mostrar uma mensagem solicitando que seja
        ' entrado em contato com vc, para solicitar o novo código. ai vc passa
        ' o código que é gerado a partir do mês e ano atual
        SaveSetting "HKEY_LOCAL_MACHINE", "Vb_Sistema", "Data Doc", vDataInicial
    End If
Agora a duvida,
O Usuário se alterar a data do windows, ele poderá usar o programa denovo.
Tem como eu fazer com que isto não posso ocorrer?
Grato pela atenção de vocês.
Obrigado
   
Sérgio Jr.
SÃO PAULO
SP - BRASIL
Postada em 02/06/2005 04:03 hs            
Boa noite amigo !!!
 
Bem julgando pelas chaves de registro e as variaveis que você está usando, tente fazer o seguinte:
'
'Crie uma nova chave que armazena qual foi a ultima data de acesso ao seu sistema
'
'Exemplo:
'
SaveSetting "HKEY_LOCAL_MACHINE", "Vb_Sistema", "Data Doc", vUltimoAcesso
'
'Ai antes de voce definir o valor a variavel vDataFinal, verifique se a chave 'vUltimoAcesso é menor ou igual a data atual do computador, se porventura o ultimo 'acesso for maior que a data atual do computador, concerteza o usuário alterou a 'data, ai você não deixa o programa ser carregado e/ou emite uma mensagem 'alertando o usuário que os dados podem ser corrompidos....Ou qualquer outra coisa 'assim
' 
'Ao verificar o valor da variavel vDataFinal, verifique se a data atual do computador é 'menor que a data final gravada na variavel vDataFinal, pois teoricamente a data 'atual tem que ser maior ou igual a ultima data, concorda ???
'
'Então eu acho que o código deve ficar assim:
'Atrubui a variavel xChaveUltAcesso o valor da chave xUltAcesso
'
xChaveUltAcesso = GetSetting("HKEY_LOCAL_MACHINE", "Vb_Sistema", "xUltAcesso")
If vDataFinal = "" Then
        resultado = "0"
Else
'
'Acrescente essa linha
'
'Se a variavel estiver vazia é porque a chave não existe, então o programa
' ainda não foi usado
'
If xChaveUltAcesso = "" then
'
'Se a chave está vazia então atribui a ela o valor da data atual
'
    SaveSetting "HKEY_LOCAL_MACHINE", "Vb_Sistema", "xUltAcesso", _
          Format(Now,"dd/mm/yy")
else
'
'MAs se a chave já  tiver algum valor então verifica se a data atual é menor
'Da que está armazenada na chave do windows
'
     IF Format(Now,"dd/mm/yy") < xChaveUltAcesso then Then
     '
     'Se a data atual for menor que a data atual então o usuário alterou
     'Ai você coloca a rotina que quizer, uma mensagem ou encerra o sistema
     '
     'Aqui eu coloquei uma mensagem de alerta e finalizo o programa
     '
         MsgBox "Ocorreu erros ao carregar o sistema !!!"
            End
      End if
'
 

        resultado = DateDiff("d", Format(vDataInicial, "dd/mm/yyyy"), Format(vDataFinal, "dd/mm/yyyy"))
End If
 
Obs: eu não testei o código em meu micro, fiz as linhas baseadas no seu código, caso   não funcione post novamente aqui no forum....
 
Tentei...
 
 

Sérgio Júnior
Analista de sistemas e Instrutor de informática
 
EMAIL e MSN   sj@softweb.com.br
ICQ                339982437
 
...O cavalo se prepara para a batalha...    
...mas do Senhor Jesus vem a vitória...
 
     
Sérgio Jr.
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 06/06/2005 16:05 hs            
Boa tarde amigo !!!
 
E ai conseguiu ?

Sérgio Júnior
Analista de sistemas e Instrutor de informática
 
EMAIL e MSN   sj@softweb.com.br
ICQ                339982437
 
...O cavalo se prepara para a batalha...    
...mas do Senhor Jesus vem a vitória...
 
   
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 06/06/2005 18:52 hs   
consegui sim amigo sérgio
obrigado pela sua atenção
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página