ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

trial para distribuição.. [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
dleal
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 15 de Mai de 2014
Mensagens: 156

MensagemEnviada: Qua Jan 06, 2016 6:57 am    Assunto: trial para distribuição.. [RESOLVIDO] Responder com Citação

Bom dia, pessoal!

Como faço uma versão trial para distribuição? Que programa usar?
Preciso limitar o tempo de uso para um sistema
Uso Delphi 7 e firebird.
Grato,
Luciano


Editado pela última vez por dleal em Dom Jan 10, 2016 7:58 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Qua Jan 06, 2016 10:47 am    Assunto: Responder com Citação

Uma forma que vejo é salvando em algum lugar a data de primeira abertura do sistema...
Por exemplo:
- Regedit
- DLL
- Banco de Dados Offline e/ou Online

e ao abrir o sistema você faz validação de data se passou X dias... Isso tudo segue o mesmo principio de trava de um sistema, por exemplo, pedir chave de licença e tal.

Isso você que ficaria responsável de programar.
_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
dleal
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 15 de Mai de 2014
Mensagens: 156

MensagemEnviada: Qua Jan 06, 2016 7:25 pm    Assunto: Responder com Citação

viox escreveu:
Uma forma que vejo é salvando em algum lugar a data de primeira abertura do sistema...
Por exemplo:
- Regedit
- DLL
- Banco de Dados Offline e/ou Online

e ao abrir o sistema você faz validação de data se passou X dias... Isso tudo segue o mesmo principio de trava de um sistema, por exemplo, pedir chave de licença e tal.

Isso você que ficaria responsável de programar.


Obrigado, viox! vou colocar os neurônios pra se quebrarem... mas se eu precisar, posso recorrer???

Abraços,
Luciano
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Qui Jan 07, 2016 9:12 am    Assunto: Responder com Citação

Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy
_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
dleal
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 15 de Mai de 2014
Mensagens: 156

MensagemEnviada: Qui Jan 07, 2016 7:56 pm    Assunto: Responder com Citação

viox escreveu:
Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
netoferreira
Novato
Novato


Registrado: Sexta-Feira, 19 de Dezembro de 2014
Mensagens: 77
Localização: Macapá - AP

MensagemEnviada: Qui Jan 07, 2016 9:10 pm    Assunto: Responder com Citação

dleal escreveu:
viox escreveu:
Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano

dleal

Uso algo parecido que você pode adaptar para o seu projeto
Código:
  if QueryAcesso.Fields.FieldByName('DT_dtmAcesso').AsDateTime > Now then
    begin
      Application.MessageBox('Data do Sistema Operacional incorreta!','Atenção',MB_OK+MB_ICONWARNING);
      Application.MessageBox('Entre em contato com o Suporte!','Atenção',MB_OK+MB_ICONINFORMATION);
      Application.Terminate;
      Abort;
    end;

  DmDados.CDS_tbl_acesso.Open;
  TClientDataSet(DS_tbl_acesso.DataSet).Insert;

    if (DS_tbl_acesso.State in [dsInsert]) and (GetAcesso(Date)) then
      begin
        frmLogin.Close;
      end
        else
          begin
            TClientDataSet(DS_tbl_acesso.DataSet).Insert;
              if DS_tbl_acesso.State in [dsInsert] then
                try
                  DmDados.CDS_tbl_acessoCD_intAcesso.AsInteger  := GetId('CD_intAcesso','tbl_acesso');
                  DmDados.CDS_tbl_acessoDT_dtmAcesso.AsDateTime := Now;
                  TClientDataSet(DS_tbl_acesso.DataSet).Post;
                  TClientDataSet(DS_tbl_acesso.DataSet).ApplyUpdates(0);
                  TClientDataSet(DS_tbl_acesso.DataSet).Open;
                  TClientDataSet(DS_tbl_acesso.DataSet).Close;
                except on E : Exception do
                  raise Exception.Create('Erro ao registrar Data de Acesso: '+E.Message);
                end;
          end;


No evento OnShow do form de Login com uma Query com o seguinte código
Código:
SELECT CD_intAcesso, MAX(DT_dtmAcesso) AS DT_dtmAcesso FROM tbl_acesso
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dleal
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 15 de Mai de 2014
Mensagens: 156

MensagemEnviada: Qui Jan 07, 2016 9:26 pm    Assunto: Responder com Citação

netoferreira escreveu:
dleal escreveu:
viox escreveu:
Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano

dleal

Uso algo parecido que você pode adaptar para o seu projeto
Código:
  if QueryAcesso.Fields.FieldByName('DT_dtmAcesso').AsDateTime > Now then
    begin
      Application.MessageBox('Data do Sistema Operacional incorreta!','Atenção',MB_OK+MB_ICONWARNING);
      Application.MessageBox('Entre em contato com o Suporte!','Atenção',MB_OK+MB_ICONINFORMATION);
      Application.Terminate;
      Abort;
    end;

  DmDados.CDS_tbl_acesso.Open;
  TClientDataSet(DS_tbl_acesso.DataSet).Insert;

    if (DS_tbl_acesso.State in [dsInsert]) and (GetAcesso(Date)) then
      begin
        frmLogin.Close;
      end
        else
          begin
            TClientDataSet(DS_tbl_acesso.DataSet).Insert;
              if DS_tbl_acesso.State in [dsInsert] then
                try
                  DmDados.CDS_tbl_acessoCD_intAcesso.AsInteger  := GetId('CD_intAcesso','tbl_acesso');
                  DmDados.CDS_tbl_acessoDT_dtmAcesso.AsDateTime := Now;
                  TClientDataSet(DS_tbl_acesso.DataSet).Post;
                  TClientDataSet(DS_tbl_acesso.DataSet).ApplyUpdates(0);
                  TClientDataSet(DS_tbl_acesso.DataSet).Open;
                  TClientDataSet(DS_tbl_acesso.DataSet).Close;
                except on E : Exception do
                  raise Exception.Create('Erro ao registrar Data de Acesso: '+E.Message);
                end;
          end;


No evento OnShow do form de Login com uma Query com o seguinte código
Código:
SELECT CD_intAcesso, MAX(DT_dtmAcesso) AS DT_dtmAcesso FROM tbl_acesso


opa, boa noite, netoferreira
vou estudar seu código, depois de fazer as adaptações necessárias, posto o resultado.
Agradeço a boa vontade!
Abraços,
Luciano D.Leal
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
netoferreira
Novato
Novato


Registrado: Sexta-Feira, 19 de Dezembro de 2014
Mensagens: 77
Localização: Macapá - AP

MensagemEnviada: Sex Jan 08, 2016 1:10 am    Assunto: Responder com Citação

dleal,
Esse código foi usado no MySQL.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Jan 08, 2016 8:46 am    Assunto: Responder com Citação

dleal escreveu:
viox escreveu:
Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano


Você pode colocar uma condição assim:

- Se a data for nula é a primeira vez (grava a data atual)
- Senão faça a comparação.

Código:
if Query1.FieldByName('CampoData').IsNull then
    //Grava a data atual
   else
    // Faça a comparação

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
dleal
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 15 de Mai de 2014
Mensagens: 156

MensagemEnviada: Dom Jan 10, 2016 8:03 am    Assunto: Responder com Citação

natanbh1 escreveu:
dleal escreveu:
viox escreveu:
Claro meu amigo, o que for de meu conhecimento ajudarei sem exitar Very Happy


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano


Você pode colocar uma condição assim:

- Se a data for nula é a primeira vez (grava a data atual)
- Senão faça a comparação.

Código:
if Query1.FieldByName('CampoData').IsNull then
    //Grava a data atual
   else
    // Faça a comparação


Boa noite, viox!
Seguindo seu raciocínio, comecei em fazer assim...
...criei uma tabela de nome "trial", com um campo data.
Ao entrar, grava a data atual. Mas como fazer o sistema gravar essa data
somente na primeira vez e a partir da segunda vez, comparar para poder bloquear?
Desculpe-me, a dúvida pode ser meio básica, mas nunca criei nada assim.

Se me der a lógica, continuo (pelo menos eu acho, rs)
Obrigado,
Luciano[/quote]

Você pode colocar uma condição assim:

- Se a data for nula é a primeira vez (grava a data atual)
- Senão faça a comparação.

[code]if Query1.FieldByName('CampoData').IsNull then

else


Bom dia viox!
Seguindo a lógica que me propôs, resolvi o problema, fazendo o seguinte:
No "on show" do form principal:
[code]
procedure Tfprincipal.FormShow(Sender: TObject);
begin
dmdados.tbl_trial.open;
dmdados.tbl_trial.edit;

if dmdados.tbl_trial.FieldByName('Data').IsNull then
dmdados.tbl_trialDATA.Value:=(date)

else
if (date) >= (dmdados.tbl_trialDATA.Value) + 30 then
begin

ShowMessage('O prazo para avaliação do software expirou! Contate-nos para adquirir uma cópia completa: ');
close;
end;
end;
[/code]
Fiz os testes e está funcionando perfeitamente.
Obrigado a todos por disporem de seu tempo e me ajudar em mais essa dúvida.
Abraços,
Luciano
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB