Странные проблемы с правой кнопкой мыши win api, mouse_event, user32.dll
Цитата: Удаленный пользователь от 25.07.2022, 16:22Всем доброго!
Отлично работает левая кнопка мыши, а вот правая начинает виснуть, на сайте тест клика вообще показывает что три раза одновременно кликаю
Начинает лагать, ели закрываю программу через диспетчер задач[spoiler title="КОД"]
public partial class MainForm : Form
{
[DllImport("user32.dll")]static extern void mouse_event(int dwFlags, int dx, int dy, int dwdata, int dwextrainfo); // НАЗВАНИЕ ИМЕННО ТАКОЕ!
public enum MouseEventFlags
{
LeftDown = 2,
LeftUp = 4,
RightDown = 8,
RightUp = 10
}public void LeftClick(Point p)
{
mouse_event((int)MouseEventFlags.LeftDown, p.X, p.Y, 0, 0);
mouse_event((int)MouseEventFlags.LeftUp, p.X, p.Y, 0, 0);
}public void RightClick(Point p)
{
mouse_event((int)MouseEventFlags.RightDown, p.X, p.Y, 0, 0);
mouse_event((int)MouseEventFlags.RightUp, p.X, p.Y, 0, 0);
}bool stop = true;
void buttonStartOrStop_Click(object sender, EventArgs e
{
stop = !stop;
label2.Text = $"Кликер {!stop}"; // Состояние кликераtimer.Interval = (int) numericUpDown1.Value;
timer.Enabled = true;if (!stop) timer.Start();
else timer.Stop();
}void timer_Tick(object sender, EventArgs e)
{
if (radioButtonLeft.Checked)
{
LeftClick(new Point(MousePosition.X, MousePosition.Y));
}
if (radioButtonRight.Checked)
{
RightClick(new Point(MousePosition.X, MousePosition.Y));
}
}
}
[/spoiler]
Всем доброго!
Отлично работает левая кнопка мыши, а вот правая начинает виснуть, на сайте тест клика вообще показывает что три раза одновременно кликаю
Начинает лагать, ели закрываю программу через диспетчер задач
Скопированоpublic partial class MainForm : Form
{
[DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwdata, int dwextrainfo); // НАЗВАНИЕ ИМЕННО ТАКОЕ!
public enum MouseEventFlags
{
LeftDown = 2,
LeftUp = 4,
RightDown = 8,
RightUp = 10
}
public void LeftClick(Point p)
{
mouse_event((int)MouseEventFlags.LeftDown, p.X, p.Y, 0, 0);
mouse_event((int)MouseEventFlags.LeftUp, p.X, p.Y, 0, 0);
}
public void RightClick(Point p)
{
mouse_event((int)MouseEventFlags.RightDown, p.X, p.Y, 0, 0);
mouse_event((int)MouseEventFlags.RightUp, p.X, p.Y, 0, 0);
}
bool stop = true;
void buttonStartOrStop_Click(object sender, EventArgs e
{
stop = !stop;
label2.Text = $"Кликер {!stop}"; // Состояние кликера
timer.Interval = (int) numericUpDown1.Value;
timer.Enabled = true;
if (!stop) timer.Start();
else timer.Stop();
}
void timer_Tick(object sender, EventArgs e)
{
if (radioButtonLeft.Checked)
{
LeftClick(new Point(MousePosition.X, MousePosition.Y));
}
if (radioButtonRight.Checked)
{
RightClick(new Point(MousePosition.X, MousePosition.Y));
}
}
}
Цитата: Удаленный пользователь от 25.07.2022, 18:15РЕШЕНО, я понял
РЕШЕНО, я понял
Цитата: Удаленный пользователь от 25.07.2022, 18:44Цитата: Клякнутый кля от 25.07.2022, 18:15РЕШЕНО, я понял
Приветствую.
Так если решено, пишите как...
Цитата: Клякнутый кля от 25.07.2022, 18:15РЕШЕНО, я понял
Приветствую.
Так если решено, пишите как...
Цитата: Удаленный пользователь от 25.07.2022, 18:48Надо всего лишь заменить похожий код на
[spoiler title="Код:"][Flags] public enum MouseEventFlags { LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010 }[/spoiler]
Надо всего лишь заменить похожий код на
[Flags]
public enum MouseEventFlags
{
LeftDown = 0x0002,
LeftUp = 0x0004,
RightDown = 0x0008,
RightUp = 0x0010
}
Цитата: admin от 25.07.2022, 18:58Клякнутый кля, убирайте под спойлер всю кашу с кодом. Это предупреждение.
Предупреждение выдаётся 1 раз, далее следует бан.У Вас есть эта кнопка для кода и эта для спойлеров.
[spoiler title="P.S."]
не
нужно
так
кодить
и
в
принципе
писать
так
сообщения
[/spoiler]
Клякнутый кля, убирайте под спойлер всю кашу с кодом. Это предупреждение.
Предупреждение выдаётся 1 раз, далее следует бан.
У Вас есть эта кнопка для кода и эта для спойлеров.
не
нужно
так
кодить
и
в
принципе
писать
так
сообщения
Цитата: Удаленный пользователь от 25.07.2022, 19:12Извиняюсь, не знал, что делает кнопка "Code Insert"
Я увидел кнопку "Код" туда и пихаю, а про спойлер думал 8 строк кода можно и без спойлера
Извиняюсь, не знал, что делает кнопка "Code Insert"
Я увидел кнопку "Код" туда и пихаю, а про спойлер думал 8 строк кода можно и без спойлера