forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Кликер (http://forum.boolean.name/showthread.php?t=12863)

den 08.07.2010 22:56

Кликер
 
Всем привет!
Вот недавно делал кликер --->
----> http://xakni.ucoz.ru/load/moi_progi/..._0_0_1/1-1-0-2
Вот самые главные строчки в нём:
Цитата:

//Находим окно под мышкой
::GetCursorPos(&p);
w=::WindowFromPoint(p);
//Кликаем по нему:
::SendMessage(w, WM_LBUTTONDOWN, MK_LBUTTON, 0); //нажимаем...
::SendMessage(w, WM_LBUTTONUP, 0,0); //...отпускаем
Но проблема в том что прога кликае не по точке (пикселю) а по окну, тоесть мы не сможем кликнуть по крестику у окна чтоб его закрыть. Или он не будет работать в игре.
А как сделать "чистый" кликер, чтоб он щелкал не по укну , а по точке?
Взарание спасибо!

Kolobok 08.07.2010 23:33

Ответ: Кликер
 
Не уверен что твой "кликер" будет работать в играх... Ведь во многих играх курсор смещается к какой-то точке каждую миллисекунду...

Я C++ плохо знаю, но думаю искать окно не надо, а просто устанавливать курсор в координаты X, Y и кликать...

den 08.07.2010 23:39

Ответ: Кликер
 
Цитата:

, а просто устанавливать курсор в координаты X, Y и кликать...
:4to: :4to: :4to:
Я вот и спрашиваю - какая функция есть для клика...
Может надо винде, через какую нибуть хитрожопую функцию, передать что мыше отдавили левую лапу...
А вот как это сделать?

HolyDel 08.07.2010 23:47

Ответ: Кликер
 
ты вобщето это и делаешь.
но передаешь глобальные координаты, а надо в системе окна.

den 09.07.2010 00:19

Ответ: Кликер
 
Цитата:

, а надо в системе окна.
Как так. Но вот я получил хендл нужного мне окна (элемента управления (кнопки, списка ... ) ) а как теперь получить в в системе окна? С помощью какой функции?

Randomize 09.07.2010 06:32

Ответ: Кликер
 
Вложений: 1
Давно писал на Delphi.
Кликает всюду, кликает много.

den 09.07.2010 11:18

Цитата:

Давно писал на Delphi.
Не, мне надо на С++.

Судя по проекту Randomize, в делфи за клик отвечает это:
Код:

Mouse_Event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //нажимаем?
Sleep(1);                                    //ну это ожидание на 1 мс
Mouse_Event(MOUSEEVENTF_LEFTUP,0,0,0,0);      //отпускаем?

А есть ли подобная API или MFC функция?

jimon 09.07.2010 13:22

Ответ: Кликер
 
Den
SendMessage по твоему что делает ? хватит копипастить код, лучше хотя бы пытайся его понять

den 09.07.2010 13:28

Ответ: Кликер
 
Цитата:

SendMessage по твоему что делает ? хватит копипастить код, лучше хотя бы пытайся его понять
jimon во первых этот код я не копипастил, и понимаю
во вторых проблема в другом:
Цитата:

Но проблема в том что прога кликае не по точке (пикселю) а по окну, тоесть мы не сможем кликнуть по крестику у окна чтоб его закрыть. Или он не будет работать в игре.
а в третьих я уже понял что надо делать:
Код:

::SetCursorPos(икс, игрик); //устанавливаем мышь куда нибуть
::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); // нажимаем...
::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); // ...отпускаем



Часовой пояс GMT +4, время: 17:39.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot