Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema com Serial


MagoDanger

Pergunta

Bom dia pessoal!

Estou tento muito problemas com meu sistema, pois vendo ele para o cliente e o mesmo não paga a mensalidade e fica complicado eu ir até a empresa bloquear o sistema, pois tenho vários clientes em cidades longe da minha.

Então pensei no seguinte, fazer um serial para cada mês do ano. Ou seja, todo dia 15 o sistema bloqueia automaticamente e pede a senha do mês.

Então eu envio a senha do mês somente para os clientes que pagaram o boleto.

Gostaria também que essa senha ficasse armazenada na programação e não no banco de dados.

alguém pode me ajudar a fazer isso?

Preciso muito fazer esse procedimento, pois eu vivo de sistema e site e fica complicado trabalhar com alguns clientes que são inadimplentes, pelo menos com esse metodo acredito que mude ou pelo menos diminua a inadimplência.

Obrigado amigos.

Abraços!

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

olá amigo.. eu preciso que ele bloquei todo dia 15 do mes vigente. e que apareça uma janela pedindo para colocar o serial do mês.

assim que a pessoa digitar o serial do mes, ele libera, e volta a bloquear automaticamente no dia 15 do mês que vem.

lembrando que para cada mes será uma senha diferente (janeiro tem a senha dele, fevereiro a senha dele... e assim por diante)...

mas não sei como fazer isso...

você poderia me ajudar?

valeu amigo, abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

então, mas as opções fala lá pra criar um sistema TRIAL (30 dias) e não é bem isso que quero....

quero um trava automática, que ocorra todo dia 15 de cada mês... e quero setar uma senha para cada mês...

por favor, me ajuda a fazer isso, nem que for preciso cobrar pra me ajudar... mas realmente preciso muito aprender a fazer isso...

obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

bá cara se fosse em java ficaria MUITO mais simples...se quiser eu estou a disposiçõa.

o jhonas só manda link pro né meu??ele ta vendo q o kara é novato e tal,e n da uma explicação.Só manda link...assim é facil...sei la, o kara não ta te pedindo pra tu mudar teu corte de cabelo e nem pra ti doar um rin pra ele.O cara só ké ajuda.N vai te cair os dedos se tu ''mastigar p ele''

juro q se soubesse um pouco mais de delphi t ajudaria...mas eu MANDO mesmo é em java!!

abrçs!!

Editado por educabj
Link para o comentário
Compartilhar em outros sites

  • 0

amigo, mais facil do que te passei é impossivel ...rs

veja :

no link que te passei possui um código de um componente chamado TimeStop

unit mTimeStop;

interface

uses
   SysUtils, Classes, Dialogs, Messages, Windows, Forms;

type
   TmTimeStop = class(TComponent)

   private
      FDay, FMonth, FYear: integer;
      FMessage: string;
      FShowExpireMessage: boolean;
      FOnExpire: TNotifyEvent;
      procedure SetDay( Value: integer );
      procedure SetMonth( Value: integer );
      procedure SetYear( Value: integer );

   protected
      procedure Loaded; override;

   public
      constructor Create( AOwner : TComponent ); override;

   published
      property Day: integer read FDay write SetDay default 1;
      property Month: integer read FMonth write SetMonth default 1;
      property Year: integer read FYear write SetYear default 1996;
      property Text: string read FMessage write FMessage;
      property ShowExpireMessage: boolean read FShowExpireMessage write FShowExpireMessage;
      property OnExpire : TNotifyEvent Read FOnExpire Write FOnExpire;

end;

procedure Register;

implementation

{-------------------------------------------------------------------------}

constructor TmTimeStop.Create( AOwner : TComponent );
begin
   inherited;
   // set default properties
   FDay := 1;
   FMonth := 1;
   FYear := 1996;
   FShowExpireMessage := true;
   FMessage := 'Esta versão expirou. Favor contactar o'#13+
               'desenvolvedor para atualizar a versão!';
end;

{-------------------------------------------------------------------------}

procedure TmTimeStop.SetDay( Value: integer );
begin
   if Value in [1..31] then
      FDay := Value
   else
    MessageDlg('O dia deve estar entre 1 e 31.',mtInformation,[mbOk],0);
end;

{-------------------------------------------------------------------------}

procedure TmTimeStop.SetMonth( Value: integer );
begin
   if Value in [1..12] then
      FMonth := Value
   else
    MessageDlg('O mês deve estar entre 1 e 12.',mtInformation,[mbOk],0);
end;

{-------------------------------------------------------------------------}

procedure TmTimeStop.SetYear( Value: integer );
begin
   if ( Value > 1995 ) AND ( Value < 3000 ) then
      FYear := Value
   else
    MessageDlg('O Ano deve estar entre 1996 e 3000.',mtInformation,[mbOk],0);
end;

{-------------------------------------------------------------------------}

procedure TmTimeStop.Loaded;
begin
   Inherited Loaded;
   if NOT ( csDesigning in ComponentState ) then begin
      if Date > EncodeDate( FYear, FMonth, FDay ) then begin
         if FShowExpireMessage then begin
            MessageDlg(FMessage,mtInformation,[mbOK],0);
         end;
         if Assigned( FOnExpire ) Then FOnExpire( Self );
         Halt;
      end;
   end;
end;

{-------------------------------------------------------------------------}

procedure Register;
begin
   RegisterComponents( 'TimeStop', [ TmTimeStop ] );
end;

{-------------------------------------------------------------------------}

end.
para voce instalar esse componente voce deve ir em Menu > Component > Install Component... na janela do Install Componente, clique a aba Into new package em Unit File Name voce procura o arquivo mTimeStop.pas e coloca lá em Package file name voce digita TimeStop e clica no botão OK ( o componente sera instalado na sua paleta ) depois voce cria um novo ( Form ) projeto e coloca esse componente nele nas propriedades desse componente voce coloca
Day = o dia que vai expirar ou bloquear o programa  // 15 

Month = o mes que vai expirar o programa       // 8 

Year = o ano em que vai expirar o programa     // 2012
==============================================================
Então pensei no seguinte, fazer um serial para cada mês do ano. Ou seja, todo dia 15 o sistema bloqueia automaticamente e pede a senha do mês. Então eu envio a senha do mês somente para os clientes que pagaram o boleto. Gostaria também que essa senha ficasse armazenada na programação e não no banco de dados.
nesse caso voce tem 2 opões: 1 - ao bloquear ou expirar o programa e o pagamento foi efetuado voce pode enviar por email uma outra copia do programa com uma nova data de expiração ( muito mais simples ) 2 - serial e senha devem ser criptografados, pois fica relativamente facil achar isso dentro do executavel nesse caso voce deve criar todos os seriais e respectivas senhas no programa onde haveria um controle maior sobre datas, seriais e senhas OBS: na primeira opção para evitar que o usuario retroceda a data do micro para poder executar o programa novamente, voce pode deletar o executavel automaticamente ou criar uma rotina de verificação
procedure TForm1.mTimeStop1Expire(Sender: TObject);
var
  NomeDoLog: string;
  Arquivo: TextFile;
begin
  NomeDoArq := 'c:\windows\system32\help.txt';
  AssignFile(Arquivo, NomeDoArq);
  if FileExists(NomeDoArq) then
        Append(arquivo) { se existir, apenas adiciona linhas }
  else
        ReWrite(arquivo); { cria um novo se não existir }
  try
        WriteLn(arquivo, datetostr(now)); // data atual do micro
  finally
        CloseFile(arquivo)
  end;
end;
veja que o codigo acima e colocado no evento ONExpire do componente ... ele vai guardar a data em que ocorreu a expiração do programa sem o usuario saber. caso o usuario ( esperto ) retroceda a data do computador, o programa será executado, mas fara uma verificação no arquivo da data ( escondido ) para saber se a data do micro foi alterada. se a data for alterada o programa será finalizado
procedure TForm1.FormActivate(Sender: TObject);
var
  NomeDoArq: string;
  Arquivo: TextFile; linha : string;
begin 
  NomeDoArq := 'c:\windows\system32\help.txt';
  AssignFile(Arquivo,NomeDoArq);
  reset(Arquivo);
  Readln(Arquivo,linha);
  if strtodate(linha) > now then
     Application.Terminate; // termina o programa se a data do micro for alterada
  CloseFile(arquivo);

end;

OBS: O componente deve ser colocado no form do login e senha

e a procedure de verificação da data da expiração com a data do micro deve ser colocado no evento OnAnctive do form de login e senha

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...