Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Shodos
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 15
#1

эмуляция зажатия кнопки мыши. - C++

26.10.2011, 23:02. Просмотров 1998. Ответов 7
Метки нет (Все метки)

Всем привет, Прошу помощи в написании "кликера". В интернете много кликеров, но нужной мне функции не нашлось. А нужно мне вот что: Чтобы кнопка мыши не просто нажималась, а зажималась! на определенное количество времени и только потом отпускалась.
Вообщем саму программу я набросал, а зажатие кнопки я пытался эмулировать так:
http://www.cyberforum.ru/cpp-beginners/thread341132.html
C++
1
2
3
4
5
inp[1].type = INPUT_MOUSE;
        inp[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; // нажатие левой кнопки
      Sleep(500);
        inp[2].type = INPUT_MOUSE;
        inp[2].mi.dwFlags = MOUSEEVENTF_LEFTUP;  // отпускание левой кнопки
Но дело в том, что кнопка не зажимается, как мне нужно, а просто тыкается один раз.
помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 23:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос эмуляция зажатия кнопки мыши. (C++):

Эмуляция нажатия мыши в свёрнутом окне
Всем доброго времения суток. Задача следующая, необходимо сэмулировать нажитие...

Обменять кнопки мыши
В одной игре потребовалось обменять кнопки мыши левую и правую местами. По...

Взаимосвязь правой кнопки мыши с функцией getch
Доброго времени суток! Перед тем, как описать суть проблемы, небольшой ввод: в...

Запись координат при нажатиях кнопки мыши
Есть программа, которая при нажатии кнопки мыши записывает её координаты. Что...

SDL ошибка на событии обработки нажатия кнопки мыши
Не могу третий день разобраться. Использовал функцию SDL для обработки события...

7
hoot
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208
26.10.2011, 23:36 #2
Вот ссылочку полезную нашел.
Обрати внимание на сносу с номером 1.

http://books.google.com.ua/books?id=...epage&q&f=true

На мой взгляд стоит поигратся с задержкой перед отпусканием мыши, так как WM_LBUTTONDOWN - это нажатие и удержание мыши.

P.S. может поможет ссылка. :-)
1
Shodos
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 15
27.10.2011, 11:36  [ТС] #3
По ссылке не дает прочитать текст. Скопируйте пожалуйста текст сюда..
0
hoot
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208
27.10.2011, 11:53 #4
Не могу, там часть какой-то книги отсканена.
Посмотри в книгах по ATL. Должно быть.
0
Shodos
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 15
27.10.2011, 13:38  [ТС] #5
Это книга в документах гугл видимо. И у меня к ней нет доступа. Расшарьте пожалуйста)
0
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
27.10.2011, 14:36 #6
mouse_event обычный юзай с MOUSEEVENTF_LEFTDOWN
1
hoot
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208
27.10.2011, 14:47 #7
Что тебе пишет.
Я через гугл нашел и открыл без поблем. может тебе акробат ридер поставить нужно или djvy ридер
0
Shodos
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 15
27.10.2011, 19:37  [ТС] #8
Hoot, я с коммуникатора, возможно в этом проблема. Дома еще раз гляну.
OstapBender не могли бы вы чуть поподробнее описать?

Добавлено через 2 часа 35 минут
Цитата Сообщение от hoot Посмотреть сообщение
На мой взгляд стоит поигратся с задержкой перед отпусканием мыши, так как WM_LBUTTONDOWN - это нажатие и удержание мыши.
Если я ставлю так:
C++
1
2
  inp[1].type = INPUT_MOUSE;
        inp[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
То он нормально зажимает кнопку мыши и все.
Но как только делаю так:
C++
1
2
3
4
5
6
7
 inp[1].type = INPUT_MOUSE;
        inp[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; 
 
 
    Sleep(5000);
        inp[2].type = INPUT_MOUSE;
  inp[2].mi.dwFlags = MOUSEEVENTF_LEFTUP;
прога ставит только 1 точку в ~5 сек.

Добавлено через 1 час 45 минут
Все разобрался!
C++
1
2
3
    mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 ); //нажимаем
Sleep(2500);
mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ); //отп
вот так заработало! спасибо всем за помощь)
0
27.10.2011, 19:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 19:37
Привет! Вот еще темы с решениями:

Как получить координаты курсора при нажатии любой кнопки мыши?
Неужели не кто не знает?

При нажатии кнопок мыши выводить информацию о нажатии соответствующей кнопки
на с++ написать программу которая при нажатии кнопок мыши выводить информацию о...

Эмуляция сигнала I и Q
Доброго времени суток. Хочу спросить возможно ли эмулировать мнимую и...

С++ эмуляция курсора
Здравствуйте, возник следующий вопрос. Возможно ли, средствами C++...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru