Почему срабатывает только со второго раза?

  • Автор темы Raschet5
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

Raschet5

Гость
#1
C++:
void ClickLeftButtonMouse()
{
INPUT inp[2];
memset(inp, 0, sizeof(inp));
inp[0].type = INPUT_MOUSE;
inp[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
inp[1].type = INPUT_MOUSE;
inp[1].mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(2, inp, sizeof(INPUT));
};
Эта процедура запущенная дважды последовательно при разных координатах курсора мыши срабатывает только на второй раз.
Я, для срабатывания в обоих случаях - по обоим координатам, запускаю процедуру дважды при первых координатах и единожды при вторых.
Почему так? Нельзя ли сделать так, чтобы срабатывало с первого раза?
 
I

Impactor

Гость
#2
А трассировку пробовали?? Проверяли где программа начинает косячить??
 
R

Raschet5

Гость
#3
Да. Конечно. Пробовал. Жму на процедуру. Первый раз проходит по всех операторам без ошибок. Но никакого клацания мыши не происходит. Прохожу про процедуре второй раз тут же и всё нормально. Ошибок программа не выдаёт. Просто не отрабатывает в первый раз. Такое ощущение как будто первое срабатывание обрабатывается ещё где-то или не попадает на обработку. Но моей программе кроме этой процедуры больше нет кода работы с мышкой. (Я про собственный код.)
 
R

Raschet5

Гость
#4
Эта ошибка не связана с языком программирования. Она связана с операционной системой. Когда делаю "cmd" и пытаюсь ввести любую команду, то всегда первый символ у меня съедается. Т.е. первое нажатие всегда пропадает.
 
Статус
Закрыто для дальнейших ответов.