data de validade expiraçao em codigo Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

feraholy
Posts: 4
Joined: 27 Aug 2019, 03:30

data de validade expiraçao em codigo

27 Aug 2019, 03:37

Olá, comecei a 2 dias a mexer com o autohotkey eu peguei alguns scripts já prontos como no-recoil e auto click estou tentendo montar uma serie de script de jogos fps em um unico codigo eu quero criar macros para crossfire e por no meu canal do youtube mais to querendo por validade por exemplo eu libero ele hoje no meu canal para 3 dias ai daqui 3 dias eles tem que ir no canal para baixar novamente o script com data atualizada gostaria de saber se alguem pode me ajudar com um codigo basico para quando der tal dia dd/MM/aaaa por exemplo dia 30/08/2019 eles nao poderem usar mais e terem que ir no meu canal para baixar novamente.

Grato dês de ja! :wave: :wave:
User avatar
Gio
Posts: 687
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: data de validade expiraçao em codigo  Topic is solved

27 Aug 2019, 15:46

Bom tarde Ferahol.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.

Para comparar datas sugiro usar sempre o formato AAAAMMDD.
Este formato é composto de:
Ano com 4 dígitos, seguido do mês com 2 dígitos, seguido do dia com 2 dígitos.
Exemplo: 20190827 -> 27 de agosto de 2019

A razão de usar esse formato é que uma data maior sempre se converte em um número maior, então a comparação pode ser direto na expressão usando os comparadores maior-que, menor-que e igual-a.

Depois disso, comparar uma data com a data de validade é algo tão simples quanto usar uma expressão condicional if.

:arrow: No código abaixo a data atual é obtida do relógio do windows (usando as variáveis embutidas A_YYYY, A_MM e A_DD) e depois comparada com a data 30/08/2019. Se a comparação for maior, o script estará vencido. Se não for, estará válido. Você pode testar o código mudando a data do windows no seu computador.

Code: Select all

DATA_ATUAL := A_YYYY . A_MM . A_DD
DATA_VALIDADE := "20190830"
If (DATA_ATUAL > DATA_VALIDADE)
{
	msgbox % "Script vencido!"
}
else
{
	msgbox % "Script dentro da validade !"
}
:arrow: O único problema do código acima você já deve ter percebido: basta mudar a data do computador para o script voltar a ser válido. Então se você está preocupado com essa possibilidade sugiro usar uma data obtida online. Isso vai fazer seu script necessitar de conexão à internet, portanto você deve decidir se vale a pena ou não.

Code: Select all

FileDelete, %A_ScriptDir%/DVer.txt
URLDownloadToFile, http://worldclockapi.com/api/json/est/now, %A_ScriptDir%/DVer.txt
FileRead, ARQUIVO_BAIXADO, %A_ScriptDir%/DVer.txt
RegExMatch(ARQUIVO_BAIXADO, "\d\d\d\d-\d\d-\d\d", DATA_ATUAL)
DATA_ATUAL_FORMATADA := SubStr(DATA_ATUAL, 1, 4) . SubStr(DATA_ATUAL, 6, 2) . SubStr(DATA_ATUAL, 9, 2)
If DATA_ATUAL_FORMATADA is not time
{
	msgbox % "Não foi possível verificar a validade"
	Return
}
If (DATA_ATUAL_FORMATADA < "20190831") ; Use um dia a mais, do contrário a validade encerra às 00:00 do dia 30.
{
	msgbox % "Script válido!"
	Return
}
else
{
	msgbox % "Script já venceu !!"
	Return
}
:arrow: No código acima, a rotina para o caso do script ser válido seria escrita entre o msgbox % "Script válido" e o return seguinte. Como a data é obtida online, a maneira que você teria de testar um script desse é alterar a data que você está comparando no próprio código e ver se a comparação muda para vencido. O script acima necessita de conexão à internet e depende de um serviço online hospedado em worldclockapi.com, mas creio que isso não é um problema, pois dificilmente este serviço vá sumir nos próximos 3 dias (se você caiu aqui nesse tópico meses depois deste post, vale a pena testar se o script ainda funciona !).

Espero ter ajudado, se tiver algum problema para implementar, basta postar abaixo :thumbup:
feraholy
Posts: 4
Joined: 27 Aug 2019, 03:30

Re: data de validade expiraçao em codigo

27 Aug 2019, 16:48

Muito obrigado deu certinho, eu consegui adicionar o de data do windows agora vou estudar esse codigo que usa a internet MUITÍSSIMO OBRIGADO!!! :thumbup: :bravo:
eduPAIVA007
Posts: 1
Joined: 04 Oct 2019, 14:29

Re: data de validade expiraçao em codigo

04 Oct 2019, 14:35

Legal essa função, eu estava pensando se tem como fazer um check com ela, quando o programa está aberto...

pq nesse caso ai a pessoa poderia abri-lo e deixar aberto por 15 dias e ele continuaria funcionando mesmo com o tempo expirado NAO é?!
User avatar
Gio
Posts: 687
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: data de validade expiraçao em codigo

04 Oct 2019, 16:47

Boa tarde EduPAIVA007.

O check pode ser feito sempre (e quando) você quiser. Se quiser verificar a cada intervalo de tempo X, basta colocar a rotina de verificação em uma label e chamá-la a cada intervalo de tempo X com o comando SetTimer.

Mas usualmente isso não é feito. Quase todo programa comercial que conheço verifica licença apenas no início da execução (até porque um programa dificilmente rodaria 15 dias sem crashar).

Exemplo (verificar no início da execução e também a cada hora):

Code: Select all

Gosub, VERIFICAR_A_DATA ; Verifica no início da execução
SetTimer, VERIFICAR_A_DATA, 3600000 ; Verifica a cada hora de execução

; Aqui vai o restante do script

Return


VERIFICAR_A_DATA:
DATA_ATUAL := A_YYYY . A_MM . A_DD
DATA_VALIDADE := "20190830"
If (DATA_ATUAL > DATA_VALIDADE)
{
	ExitApp ; Encerra o script se estiver vencido.
}
Return

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: nacken012 and 7 guests