Как установить срок действия скрипта Python после некоторой даты - PullRequest
0 голосов
/ 09 мая 2019

Я написал скрипт на python и создал графический интерфейс с помощью Tkinter. Я хочу установить срок действия моего exe-файла, который не загружается после 30 дней создания. Есть ли какой-нибудь возможный способ сделать это?

    def program_expired():

        if os.path.exists(launch_date):
            with open(launch_date, 'r') as fileRead:
                time_as_str = fileRead.read()
                print(time_as_str)
                start_date = datetime.datetime.strptime(time_as_str, "%Y_%m_%d")


                expire_date = start_date + datetime.timedelta(days=31)

                if datetime.datetime.now() > expire_date:
                    messagebox.Message("Your tool had expired")

                    sys.exit()

        else:
            main()
    def main():
        root = Tk()

        root.resizable(width=False, height=False)


        root.geometry("550x300")
        root.mainloop()
program_expired()

1 Ответ

0 голосов
/ 10 мая 2019

Похоже, вы уже настроили логику, но я не уверен, что вы собирались читать из файла.Вот как можно просто сравнить жестко закодированную дату с текущей датой.

import tkinter as tk
from tkinter import messagebox
from datetime import datetime

def program_expired():
    app_date = datetime(year=2019,month=5,day=1) #setup a datetime object
    now = datetime.now()
    if (now-app_date).days >=5: #change to 30
        messagebox.showerror("Error","Your tool had expired")
    else:
        main()

def main():
    root = tk.Tk()
    root.resizable(width=False, height=False)
    root.geometry("550x300")
    root.title("Tool")
    root.mainloop()

program_expired()

Обратите внимание, что пользователь может продолжать использовать ваше приложение, если он перематывает системное время до 30 дней в течение вашей даты создания.Если это так, вам понадобится что-то еще, например, разбор времени, извлеченного из Интернета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...