Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.04.2018, 08:38
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию Клики по не статичным контроллам

Можно кликнуть перемещая курсор в точку
Код:
  SetCursorPos(Coord.X, Coord.Y);
        Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LeftDOWN, 0, 0, 0, 0);
    
        Sleep(50);
        Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Можно не перемещая
Код:
ScreenToClient(h, Coord);
        LP := MakeLParam(Coord.X, Coord.Y);
        SendMessage(h, WM_LBUTTONDOWN, 0, LP);
        Sleep(50);
       SendMessage(h, WM_LBUTTONUP, 0, LP);

и все хорошо, но ровно до того момента пока контролл не Drag'ается.
В этом случае идет не клик, а перемещение в место курсора.
Слип хоть 50, хоть 250, роли не играет. есть какие-то варианты? Окно чужое.

Последний раз редактировалось nixon232, 24.04.2018 в 12:23.
Ответить с цитированием
  #2  
Старый 21.05.2018, 17:03
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

а если так?

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   SendMessage(h, WM_SETFOCUS, 0, 0);
   SendMessage(h, WM_LBUTTONDOWN, MK_LBUTTON, 0);
   SendMessage(h, WM_LBUTTONUP, MK_LBUTTON, 0);
end;
Ответить с цитированием
  #3  
Старый 21.05.2018, 19:19
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Decoding
а если так?

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   SendMessage(h, WM_SETFOCUS, 0, 0);
   SendMessage(h, WM_LBUTTONDOWN, MK_LBUTTON, 0);
   SendMessage(h, WM_LBUTTONUP, MK_LBUTTON, 0);
end;
В моем случае без указания координат клика не произойдет h - это не то куда я хочу кликать. Нужно кликать в опр. точку на объекте h

Последний раз редактировалось nixon232, 21.05.2018 в 22:31.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter