Как предотвратить зависание пользователя Python при взаимодействии с окном консоли?Python

Программы на Python
Ответить
Anonymous
 Как предотвратить зависание пользователя Python при взаимодействии с окном консоли?

Сообщение Anonymous »

Я создаю графический интерфейс в стиле ретро на (полу) чистом Python, используя символы ascii. Сценарий работает путем печати и очистки консоли, используя данные мыши и клавиатуры пользователя для создания полностью интерактивного графического интерфейса.
Однако при создании системы обнаружения щелчков я заметил, что Python зависает, когда пользователь взаимодействует с реальным окном консоли (например, перетаскивает консоль, нажимает на консоль). Затем это зависание заканчивается, когда пользователь нажимает любую клавишу или щелкает правой кнопкой мыши.
Я попытался решить эту проблему, запустив отдельный скрипт, который нажимает правый щелчок сразу после того, как пользователь щелкает левой кнопкой мыши, чтобы отключить взаимодействие. и разморозить код, однако этот фрагмент кода никогда не запускается, поскольку программа зависает перед запуском.
Я также пробовал поместить этот код в совершенно отдельный файл и запускать его отдельно , но это также зависает, когда любое окно консоли Python (даже если отдельный файл запускается как pyw).
Это детектор кликов:

Код: Выделить всё

def c_c():
global mouse_pos
last_cycle = False
cd = os.getcwd()
nw = "pyw " + cd + "\\misc_scripts\\click_activator.py"
os.system(nw)
while True:

state = ctypes.windll.user32.GetAsyncKeyState(0x01) # left click
pressed = (state & 0x8000 != 0)
if pressed:
onclick(mouse_pos)
Другой скрипт содержал аналогичную программу, которая была полностью функциональной при использовании

Код: Выделить всё

right_click()
функция для немедленного щелчка правой кнопкой мыши после щелчка пользователем левой кнопкой мыши, которая была полностью работоспособна при внешнем тестировании, однако не работала при использовании основной программы, что заставило меня поверить, что этот сценарий также зависает, когда пользователь взаимодействует с любой консолью.< /p>
Я ищу способ обойти эту проблему или сделать так, чтобы пользователь не мог взаимодействовать с основной консолью, но при этом мог нажимать на нее.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ole-window
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»