Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Libs
- import keyboard as kb
- import pyautogui
- import time
- positions = [] # Позиции кнопок и текстовых полей
- current = [] # Позиции кнопок и текстовых полей для текущего вопроса
- is_text = [] # Является ли вопрос текстовым
- answers = [] # Ответы на вопросы
- help_text = """
- Документация:
- - Для после запуска программы можно открывать тест. Убедитесь, что позиция окна на экране не будет меняться всё время запуска
- - Для того, чтобы запомнить кнопку, подведите к ней мышь и нажмите 1. Помните, что кнопку "Ответить" тоже нужно запомнить, но самой последней. Остальные кнопки запоминать в том порядке, в котором они идут сверху вниз
- - После перехода на следующий вопрос после вопроса с кнопками нажмите 2, чтобы программа поняла, что предыдущий вопрос завершён
- - Если вопрос содержит текстовое поле, после вопроса нажмите 3. Убедитесь, что программа запомнила только два объекта - текстовое поле и кнопку ответа
- - После того, как программа запомнила все кнопки, нажмите 4. Программа попросит вас ввести все ответы, после этого она подождет 5 секунд, чтобы вы успели переключиться и начать тест и начнёт сама заполнять их
- - Если вы хотите удалить всё, что запомнила программа, нажмите 5
- - Если хотите отладить программу (вывести все данные), нажмите 6
- - Если вы хотите получить помощь, нажмите 7
- """
- def get():
- return pyautogui.position()
- def split_button():
- global positions, current, is_text
- positions.append(current)
- is_text.append(0)
- current = []
- print("Запомнил кнопки для вопроса")
- def split_text():
- global positions, current, is_text
- is_text.append(1)
- positions.append(current)
- current = []
- print("Запомнил кнопки для вопроса с текстом")
- def read_button():
- global current
- current.append(get())
- print("Запомнил объект")
- def clear_data():
- global positions, current, is_text
- positions = []
- current = []
- is_text = []
- print("Стёр все")
- def debug():
- global positions, current, is_text
- print(positions)
- print(current)
- print(is_text)
- print(answers)
- def help_me():
- print(help_text)
- def run(sleep_time = 0.5):
- global positions, is_text, answers
- for i in range(len(positions)):
- print(f"Вопрос {i + 1}, ", end="")
- if not is_text[i]:
- print("тип: варианты ответа")
- answer = list(map(int, input("Введите варианты ответа через пробел: ").split(" ")))
- answers.append(answer)
- else:
- print("тип: текст")
- answer = input("Введите правильный ответ без лишних символов: ")
- answers.append(answer)
- print("Удачи")
- for i in range(5):
- print(5 - i)
- time.sleep(1)
- for i in range(len(positions)):
- if is_text[i]:
- pyautogui.moveTo(positions[i][0][0], positions[i][0][1])
- pyautogui.click()
- pyautogui.write(answers[i])
- pyautogui.moveTo(positions[i][1][0], positions[i][1][1])
- pyautogui.click()
- else:
- for num in answers[i]:
- pyautogui.moveTo(positions[i][num - 1][0], positions[i][num - 1][1])
- pyautogui.click()
- pyautogui.moveTo(positions[i][-1][0], positions[i][-1][1])
- pyautogui.click()
- time.sleep(sleep_time)
- print("Готово")
- print(help_text)
- kb.add_hotkey("1", read_button)
- kb.add_hotkey("2", split_button)
- kb.add_hotkey("3", split_text)
- kb.add_hotkey("4", run)
- kb.add_hotkey("5", clear_data)
- kb.add_hotkey("6", debug)
- kb.add_hotkey("7", help_me)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement