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!
data de validade expiraçao em codigo Topic is solved
Moderator: Gio
Re: data de validade expiraçao em codigo Topic is solved
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.
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.
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.
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
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.
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 !"
}
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
}
Espero ter ajudado, se tiver algum problema para implementar, basta postar abaixo
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Re: data de validade expiraçao em codigo
Muito obrigado deu certinho, eu consegui adicionar o de data do windows agora vou estudar esse codigo que usa a internet MUITÍSSIMO OBRIGADO!!!
-
- Posts: 1
- Joined: 04 Oct 2019, 14:29
Re: data de validade expiraçao em codigo
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 é?!
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 é?!
Re: data de validade expiraçao em codigo
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):
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
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Return to “Ajuda e Suporte Geral”
Who is online
Users browsing this forum: No registered users and 88 guests