Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Эмуляция клика  [new]
Ekklesiast
Member

Откуда:
Сообщений: 319
Обычно юзаю эмуляцию клика через:
  SendMessage(h, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(x, y));
  SendMessage(h, WM_LBUTTONUP, 0, MAKELONG(x, y));


Но есть окно, где подобная эмуляция клика работает если курсор мыши расположен на нём.
Есть варианты как избежать перемещения курсора ?

Картинка с другого сайта.
2 мар 19, 11:38    [21823291]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47384

Попробуй PostMessage вместо SendMessage.

Posted via ActualForum NNTP Server 1.5

2 мар 19, 12:20    [21823296]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
DimaBr
Member

Откуда:
Сообщений: 10994
Если окно (то есть программа), проверяет положение курсора, то сообщением не отделаешься.
2 мар 19, 14:26    [21823325]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Василий 2
Member

Откуда:
Сообщений: 532
Быстро прыгнуть курсором на позицию клика и вернуть где был не вариант? Если программа - это игра, то вполне возможно, что уровней защиты от ботовства там до фига, и так просто она не сдастся.
4 мар 19, 14:01    [21824365]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3898
mouse_event ?
4 мар 19, 14:19    [21824393]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Arioch
Member

Откуда:
Сообщений: 10807
Василий 2
Если программа - это игра


SWT - это вряд ли игра
4 мар 19, 16:02    [21824585]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Ekklesiast
Member

Откуда:
Сообщений: 319
YuRock
mouse_event ?

нее, надо через посыл сообщения окну, т.к. оч. удобно без его активации

щас копаю в сторону посыла след. сообщений окну:
wm_MouseActivate	
wm_MouseMove	    
wm_NCHitTest	    
wm_ParentNotify	
wm_SetCursor
wm_SetFocus    
WM_MOUSEHOVER 


пока без успешно )))
5 мар 19, 14:14    [21825388]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Arioch
Member

Откуда:
Сообщений: 10807
Ekklesiast,

Большинство библиотек игнорируют "пристёгнутые" к сообщению координаты и запрашивают коорлдинаты мыши явно в момент обработки сообщения.

В частности, если комп/программа "подвисает", а вы активно "мышевозите", то например меню откроется не где нажимали, и не где сию секунду курсор, а где-то на пол-пути
5 мар 19, 16:22    [21825543]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3898
Ekklesiast
YuRock
mouse_event ?

нее, надо через посыл сообщения окну, т.к. оч. удобно без его активации

Тогда это не эмуляция клика, а попытка похачить чужую программу, если повезет найти дырку.
Эмуляция - это именно mouse_event (если хватит прав, конечно). Эта функция пошлёт все необходимые сообщения куда нужно.
5 мар 19, 16:30    [21825564]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
Arioch
Member

Откуда:
Сообщений: 10807
Особенно смешно, если он пытается через UAC boundary сообщания послать
5 мар 19, 16:34    [21825571]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2061
YuRock
Эмуляция - это именно mouse_event (если хватит прав, конечно). Эта функция пошлёт все необходимые сообщения куда нужно.
Только уже давно в документации приписка "Note This function has been superseded. Use SendInput instead"
5 мар 19, 22:49    [21825781]     Ответить | Цитировать Сообщить модератору
 Re: Эмуляция клика  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3898
white_nigger
YuRock
Эмуляция - это именно mouse_event (если хватит прав, конечно). Эта функция пошлёт все необходимые сообщения куда нужно.
Только уже давно в документации приписка "Note This function has been superseded. Use SendInput instead"
Да. Но всяко лучше, кусочки чем сообщений кидать.
6 мар 19, 01:53    [21825854]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить