PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 24 → WX - LICENCIAMENTO DE SOFTWARE
WX - LICENCIAMENTO DE SOFTWARE
Iniciado por BOLLER, dez., 10 2019 4:51 AM - 2 respostas
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em dezembro, 10 2019 - 4:51 AM
// Summary:
// Syntax:
//[ = ] LIC_Licenciamento ()
//
// Parameters:
// None

PROCEDURE LIC_Licenciamento()

ok,ok1,ok2,ok3,ok4 is boolean

EDT_SENHA = fDriveInfo(Middle(SysDir(srWindows),1,2),fdSerialNumber)

HReset(GPU_LICENCA)

IF HReadSeek(GPU_LICENCA,GPU_HD,EDT_SENHA,hIdentical) = False THEN

//teste 1

ok1 = False

MyWindow..Plane = 5

ELSE

//teste 2

dHoje is Date = DateSys()

IF GPU_LICENCA.GPU_PROXIMA_ATIVACAO < dHoje THEN

Info("Programa expirou!")

GPU_LICENCA.GPU_PROXIMA_ATIVACAO = ""

HModify(GPU_LICENCA)

MyWindow..Plane = 5

ELSE

ok2 = True

END

//teste 3

IF GPU_LICENCA.GPU_PROXIMA_ATIVACAO = "" THEN

MyWindow..Plane = 5

ELSE

ok3 = True

END

//teste 4
HReset(GPU_LICENCA)

HReadSeek(GPU_LICENCA,GPU_HD,EDT_SENHA,hIdentical)

IF GPU_LICENCA.GPU_ASSINATURA_DIGITAL <> "" THEN

contrasenha is string = 1234567890 //CHAVE

total is string = Decrypt(GPU_LICENCA.GPU_ASSINATURA_DIGITAL,GPU_LICENCA.GPU_HD+contrasenha,cryptAnsi+cryptFast,encodeBASE64)

base is string = GPU_LICENCA.GPU_HD +"-"+ 1234567890 +"-"+ GPU_LICENCA.GPU_PROXIMA_ATIVACAO

IF total <> base
Info("Ativação inválida!")
MyWindow..Plane = 5
ELSE
ok4 = True
END

END

END

//testes ok
IF ok1 = True AND ok2 = True AND ok3 = True AND ok4 = True THEN
ok = True
END

RESULT ok




// Summary:
// Syntax:
//[ = ] LIC_ValidaAtivacao (, , )
//
// Parameters:
// senha:
// contrasenha:
// dProximadata:

PROCEDURE LIC_ValidaAtivacao(senha,contrasenha,dProximadata)

ok is boolean

dHoje is Date = DateSys()

IF dHoje = dProximadata THEN
EndProgram("Não pode ser a date de hoje, deve ser no minimo 15 dias ou mais!")
ELSE

IF senha <> "" AND contrasenha <> "" AND dProximadata <> "" AND contrasenha = 1234567890

HReset(GPU_LICENCA)
IF HReadSeek(GPU_LICENCA,GPU_HD,EDT_SENHA,hIdentical) = False THEN
ok = False
ELSE
ok = True
END

total is string = senha +"-"+ contrasenha +"-"+ dProximadata
total = Encrypt(total,senha+contrasenha,cryptAnsi+cryptFast,encodeBASE64)

GPU_LICENCA.GPU_HD = senha
GPU_LICENCA.GPU_CONTRA_SENHA = Encrypt(contrasenha,senha+contrasenha,cryptAnsi+cryptFast,encodeBASE64)
GPU_LICENCA.GPU_PROXIMA_ATIVACAO = dProximadata
GPU_LICENCA.GPU_ASSINATURA_DIGITAL = total

IF ok = False THEN
ok = HAdd(GPU_LICENCA)
MyWindow..Plane = 1
ELSE
ok = HModify(GPU_LICENCA)
MyWindow..Plane = 1
END

ELSE

EndProgram("Contra-senha inválida!")

END

END

RESULT ok




// Summary:
// Syntax:
//LIC_Validar ()
//
// Parameters:
// None

// Return value:
// For instance:
PROCEDURE LIC_Validar()

IF EDT_SENHA = "" THEN
EndProgram("Senha não informada!")
END

IF EDT_CONTRA_SENHA = "" THEN
EndProgram("Contra-Senha não informada!")
END

IF EDT_PROXIMA_ATIVAÇÃO = "" THEN
EndProgram("Proxima ativação não informada!")
END

HReset(GPU_LICENCA)

IF HReadSeek(GPU_LICENCA,GPU_HD,EDT_SENHA,hIdentical) = False THEN

IF EDT_SENHA <> "" AND EDT_CONTRA_SENHA <> "" AND EDT_PROXIMA_ATIVAÇÃO <> "" THEN

IF LIC_ValidaAtivacao(EDT_SENHA,EDT_CONTRA_SENHA,EDT_PROXIMA_ATIVAÇÃO) = False THEN
EndProgram("Programa não foi ativado com sucesso!")
END

ELSE

IF EDT_SENHA = "" THEN
EndProgram("Senha não informada!")
END

IF EDT_CONTRA_SENHA = "" THEN
EndProgram("Contra-Senha não informada!")
END

IF EDT_PROXIMA_ATIVAÇÃO = "" THEN
EndProgram("Proxima ativação não informada!")
END

END

ELSE

IF LIC_ValidaAtivacao(EDT_SENHA,EDT_CONTRA_SENHA,EDT_PROXIMA_ATIVAÇÃO) = False THEN

EndProgram("Programa não foi ativado com sucesso!")

ELSE

IF EDT_SENHA = "" THEN
EndProgram("Senha não informada!")
END

IF EDT_CONTRA_SENHA = "" THEN
EndProgram("Contra-Senha não informada!")
END

IF EDT_PROXIMA_ATIVAÇÃO = "" THEN
EndProgram("Proxima ativação não informada!")
END

MyWindow..Plane = 1

END

END

MyWindow..Plane = 1


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em dezembro, 10 2019 - 4:55 AM
AO ABRIR O SISTEMA É EXECUTADO

A) LIC_Licenciamento()

SE NAO ESTA OK VAI PARA UMA JANELA QUE TENHA OS CAMPOS SENHA, CONTRA-SENHA, PROXIMA ATIVACAO

B) É EXECUTADO LIC_Validar()

SE NAO ESTIVER VALIDO É EXECUTADO OUTRA FUNÇÃO

C) LIC_ValidaAtivacao()

A SENHA 1234567890 DEVE SER MUDADA SE POSSIVEL PARA UMA TABELA COM VALORES DIVERSOS CORRELACIONADOS.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, dezembro, 10 2019 - 4:56 AM
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em dezembro, 10 2019 - 4:57 AM
-- Script generated by WINDEV on 10/12/2019 00:57:19
-- Tables of WDGPU.wda analysis
-- for Oracle

-- Creating the GPU_LICENCA table
CREATE TABLE GPU_LICENCA (
GPU_LICENCA_ID NUMERIC(19,0) PRIMARY KEY ,
GPU_HD VARCHAR2(30) UNIQUE ,
GPU_CONTRA_SENHA VARCHAR2(50) UNIQUE ,
GPU_PROXIMA_ATIVACAO DATE UNIQUE ,
GPU_ASSINATURA_DIGITAL VARCHAR2(255) UNIQUE );


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/