#python #mouse #pynput
Вопрос:
Я знаю, что есть похожие вопросы, но они касаются контроллера клавиатуры, и мне нужен контроллер мыши.
Итак, у меня есть программа, в которой мне нужно удерживать lmb в течение определенного времени. Я пробовал это:
mouse.press(Button.left) time.sleep(t) mouse.release(Button.left)
Но по какой-то причине он нажимает на мышь один раз вместо того, чтобы удерживать ее в течение t
нескольких секунд. Так есть ли способ сделать это? Если есть, я хотел бы увидеть реализацию.
Комментарии:
1. как я знаю, у мыши нет
hold
события, поэтому программы используютpress
иrelease
проверяют, удерживает ли пользователь кнопку — и это означает, что этоpress
только один раз. Может быть, лучше описать программу, для которой нужно удерживать мышь.
Ответ №1:
Этот код работает. Я написал короткую программу на C# , которая запускает таймер при наведении мыши вниз и прекращает отсчет при наведении мыши вверх. И это примерно соответствует количеству секунд, в течение которых Python спит.
Вот соответствующий код WinForms на C#. Все элементы, такие как Форма, Таймер и Метка, имеют только имена по умолчанию:
private int x; private void Form1_MouseDown(object sender, MouseEventArgs e) { x = 0; timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) { x = 100; label1.Text = x.ToString(); } private void Form1_MouseUp(object sender, MouseEventArgs e) { timer1.Enabled = false; }
Если это не работает, то используемая вами программа обрабатывает ввод по-другому, и вам нужно выяснить, как именно она обрабатывает ввод с помощью мыши.
Комментарии:
1. на самом деле вы правы, в моей программе просто были неправильные метки времени (или я так думаю).