From 2ed791378ce6686bb6f60699664b9d8766ec1aa0 Mon Sep 17 00:00:00 2001 From: pi3c Date: Tue, 31 Oct 2023 16:08:22 +0300 Subject: [PATCH] Final test fix ahk path --- part1_basic/final_test/app.py | 39 +++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/part1_basic/final_test/app.py b/part1_basic/final_test/app.py index f400970..3bb6067 100644 --- a/part1_basic/final_test/app.py +++ b/part1_basic/final_test/app.py @@ -14,17 +14,35 @@ from tkinter import ( StringVar, Tk, mainloop, + messagebox, ) +from pathlib import Path class ClickerGame: """Перед запуском проверьте и исправьте место установки AHK - Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла + Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла, + если приложение установлено не в папки по умолчанию """ - - AHK_PATH = r"C:\Users\pi3c\AppData\Local\Programs\AutoHotkey\UX\AutoHotkeyUX.exe" + AHK_PATH = "<Введите сюда путь до приложения AutoHotKey>" def __init__(self): + # Поиск места установки AutoHotKey + self.is_ahk_path_set = False + if os.path.isfile(app_exe := os.path.join( + Path.home(), "AppData", "Local", "Programs", "AutoHotkey", "UX", "AutoHotkeyUX.exe" + )): + self.AHK_PATH = app_exe + self.is_ahk_path_set = True + elif os.path.isfile(app_exe := os.path.join(r'c:\\', 'Program Files', "AutoHotkey", "UX", "AutoHotkeyUX.exe")): + self.AHK_PATH = app_exe + self.is_ahk_path_set = True + else: + messagebox.showerror( + "Can't find AutoHotKey", + """Set AHK_PATH in app.py Until then, the clicker will not work""", + ) + self.__root = Tk() self.__root.geometry("500x400") self.__root.minsize(500, 400) @@ -33,7 +51,7 @@ class ClickerGame: self.process = None - self.ahk_flag = False + self.ahk_flag = False # Флаг запущен ли скрипт кликера self.frame = Frame(self.__root, relief=RAISED, borderwidth=5, bg="green") self.frame.pack(fill=BOTH, expand=True, padx=5, pady=5) self.label = Label( @@ -55,10 +73,7 @@ class ClickerGame: self.timer_update() self.label3 = Label( - self.frame, - textvariable=self.timer_message, - font=("Arial", 12), - bg="green", + self.frame, textvariable=self.timer_message, font=("Arial", 12), bg="green" ) self.label3.pack(side=LEFT) @@ -109,7 +124,13 @@ class ClickerGame: self.message.set(f"Your score is: {self.score}") def switcher_ahk(self): - if self.ahk_flag: + """Переключаем состояние скрипта кликера, если путь к нему установлен""" + if not self.is_ahk_path_set: + messagebox.showerror( + "Can't find AutoHotKey", + """Set AHK_PATH in app.py Until then, the clicker will not work""", + ) + elif self.ahk_flag: print("Stop clicker") self.ahk_flag = False self.process.kill()