none
Chave de liberação RRS feed

  • Pergunta

  • boa noite ! eu consegui desenvolver o pequeno executável que pede um número de serial todas as vezes q ele é aberto . Só que eu não estou conseguindo fazer com que ele salve a chave de liberação e só me peça uma nova chave daqui 30 dias. e assim continua me pedindo de 30 em 30 dias.

    no module que eu criei , eu coloquei assim :

    Public Function LiberarSistemaLocadora(codigo As String)
    Dim A, B, C, D, E, F, G, H, dia, mes, ano

    A = Mid(codigo, 1, 1)
    B = Mid(codigo, 2, 1)
    C = Mid(codigo, 3, 1)
    D = Mid(codigo, 4, 1)
    E = Mid(codigo, 5, 1)
    F = Mid(codigo, 6, 1)
    G = Mid(codigo, 7, 1)
    H = Mid(codigo, 8, 1)

    dia = Format(Now, "d") * 3 - 1
    mes = Format(Now, "m") * 2 + 1 * dia + mes
    ano = Format(Now, "y") + 11 * dia - mes

    If IsNumeric(A) Then A = (A * 2) - 1 + 3 * 1 + 3 Else A = "S"
    If IsNumeric(B) Then B = (B * 3) - 1 + 3 * 2 + 5 Else B = "X5"
    If IsNumeric(C) Then C = (C * 5) - 1 + 3 * 3 + 6 Else C = "HW"
    If IsNumeric(D) Then D = (D * 6) - 1 + 3 * 4 + 4 Else D = "BS"
    If IsNumeric(E) Then E = (E * 4) - 1 + 3 * 5 + 9 Else E = "67"
    If IsNumeric(F) Then F = (F * 9) - 1 + 3 * 6 + 5 Else F = "T3"
    If IsNumeric(G) Then G = (G * 5) - 1 + 3 * 7 + 8 Else G = "J8"
    If IsNumeric(H) Then H = (H * 8) - 1 + 3 * 8 + 2 Else H = "Z1"

    LiberarSistemaLocadora = A & B & C & dia & D & E & ano & F & G & mes & H

    End Function

    e no meu formulário eu coloquei assim :

    Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Dim Autenticar 'Variavel com o serial de autenticação

    Public Function DriveSerialNumber(Optional strDrive As String = "c:\") As String
    Dim X As Long
    Dim lngSerialNum As Long
    Dim strRoot As String

    If Trim(strDrive) = "" Then Exit Function
    X = GetVolumeInformation(Left(strDrive, 1) & ":\", vbNullString, 0, lngSerialNum, 0, 0, vbNullString, 0)
    DriveSerialNumber = Hex(lngSerialNum)
    End Function

    Private Sub BtLiberar_Click()

    If serial.Text = Autenticar Then

    MsgBox "Obrigado! Seu Sistema Já está Liberado!", vbInformation, "SISTEMA VB-AC"

    Else

    MsgBox "Serial de Liberação do Dia Incorreto!", vbCritical, "SISTEMA VB-AC"

    End If

    End Sub

    Private Sub Form_Load()

    'Mostrar número do HD a ser fornecido para o suporte
    codigoHD.Caption = DriveSerialNumber("C:\")

    ' Variavel com serial do dia a ser comparado com o serial que o cliente digitou
    Autenticar = LiberarSistemaLocadora(codigoHD.Caption)

    End Sub

    alguém pode me ajudar por favor ?

    desde já obrigado .

    quarta-feira, 15 de abril de 2015 21:50

Respostas

Todas as Respostas

  • Olá.
    Creio que uma boa saída para o detalhe que procuras é usares o "My.Settings"

    Vemos muito nos exemplos em criação de Programas 'Trial'

    Aqui está um ótimo exemplo que podes ter por base:

    [VB.NET] Como fazer um sistema de trial (30 dias)

    Print de parte do código. No vídeo, (link acima)


    Espero ter te ajudado.


    MS INFORMATICA - Projeto Marinner

    quinta-feira, 16 de abril de 2015 02:37
  • muito obrigado pela resposta ! mas como faço para que daqui a 30 dias ele me peça um serial diferente do que foi registrado antes.
    quinta-feira, 16 de abril de 2015 23:44
  • Olá, amigo!
    Para alterar:

    My.Settings.expirar.DataTime.Now. Add(altere aqui)

    Terás que acrescentar mais Form para um novo Registro para uma nova "String", sendo que esta seja trazida pelo vencimento anterior, ou seja, o primeiro vencimento traga este segundo, podes me entender?

    No aguardo... Abraço!


    MS INFORMATICA - Projeto Marinner

    sexta-feira, 17 de abril de 2015 00:28
  • eu pensei nisso , para cada form , eu coloco um serial , e uso os mesmo códigos . e seu quiser colocar a que o serial seja soma de data hora por exemplo . é só eu colocar no lugar onde vc colocou a sua serial ?
    sexta-feira, 17 de abril de 2015 01:03
  • Para cada nova data, um novo serial, um novo Form; (Já com  novo serial para cada validação), então será, uma nova String. Vejamos, quando a primeira data vencer, seria como você dar mais um (outro) tempo de validação, tipo 'bonus'  e para o próximo vencimento, mais um 'bônus'. Lembrando que um linkado para o outro, amigo. Espero que consigas, retorne-nos! Caso resolver, feche sua pergunta. Grande abraço.

    MS INFORMATICA - Projeto Marinner


    sexta-feira, 17 de abril de 2015 03:10