• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pbreda

Licence Key

6 mensagens neste tópico

Boas,

Como é que implemento um sistema de licenças nos meus programas???? Como é que faço esse sistema???

Cumprimentos....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas;

Faz um algoritmo que se baseie no ID de algum hardware..

Foi o que fiz em algumas das soluções que criei..

Aqui tens um exemplo de uma keygen:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1411&lngWId=10

Adaptas o projecto no user name.. substituis por algo como referi a cima.. HID..

Caso queiras usar este código que desenvolvi.. serve para obter o ID baseado no Hard Disc..

    'API para ler o numero de serie do disc rigido..
    Private Declare Function GetVolumeInformation _
            Lib "Kernel32" Alias "GetVolumeInformationA" ( _
                ByVal lpRootPathName As String, _
                ByVal lpVolumeNameBuffer As String, _
                ByVal nVolumeNameSize As Integer, _
                ByRef lpVolumeSerialNumber As Integer, _
                ByRef lpMaximumComponentLength As Integer, _
                ByRef lpFileSystemFlags As Integer, _
                ByVal lpFileSystemNameBuffer As String, _
                ByVal nFileSystemNameSize As Integer _
            ) As Integer
    'Função para ler o nº de serie do hard disc 
    '(valor em Hex Decimal)
    Public Function HDSerialNumber() As String
        Try
            Dim Serial As Integer              'Serial numero
            Dim VName, FSName As String

            'Cria buffers
            VName = New String(Chr(0), 255)    'Volume nome
            FSName = New String(Chr(0), 255)   'File system

            'Volume informação
            GetVolumeInformation(GetCurrentDrive(), VName, 255, Serial, 0, 0, FSName, 255)

            'Elemina chr$(0)'s
            VName = Left(VName, InStr(1, VName, Chr(0)) - 1)
            FSName = Left(FSName, InStr(1, FSName, Chr(0)) - 1)

            'Converte valor long para hex
            Return Hex(Serial)
        Catch ex As Exception
            g_objLog.AddErr(ex)
            Return ""
        End Try
    End Function

    Public ReadOnly Property GetCurrentDrive() As String
        Get
            Try
                Return Left(My.Application.Info.DirectoryPath(), 3)
            Catch ex As Exception
                Return "C:\"
            End Try
        End Get
    End Property

Compr.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se for algo profissional podes-te basear num servidor que por exemplo assim que arranque na primeira vez gere umas 500 000 keys.

Na aplicação verificas se a key está livre, caso esteja altera o valor correspondente da variável :thumbsup:

Bem, afinal estou só a pensar :) porque eu próprio não sei se o conseguiria fazer mas penso que seja possível

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora