Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SendInput


Diamond Cat ©   (2003-03-14 14:08:00) 

d:tINPUT;
g:tagmouseinput;
begin
g.dx:=200;
g.dy:=200;
g.mouseData:=0;
g.dwFlags:=MOUSEEVENTF_LEFTDOWN ;
g.time:=0;
d.mi:=g;
d.Itype:=INPUT_MOUSE;
SendInput(1,d,sizeof(d));
g.dx:=200;
g.dy:=200;
g.mouseData:=0;
g.dwFlags:=MOUSEEVENTF_LEFTup ;
g.time:=0;
d.mi:=g;
d.Itype:=INPUT_MOUSE;
SendInput(1,d,sizeof(d));
почему не происходит клик по координатам 200,200


Diamond Cat   (2003-03-14 15:20:00) [1]


> SendInput позволяет за один раз передавать несколько структур
> MOUSEINPUT

этого момента я кстати тоже не понял, при попытке создать массив
из маусинпутов, и передать указатель на него мне отвечают типа не правильный параметр


Игорь Шевченко   (2003-03-14 14:52:00) [2]

Да нет. Сначала надо мышку подвинуть в нужную точку с MOUSEEVENTF_ABSOLUTE, а потом click сказать. Кстати, SendInput позволяет за один раз передавать несколько структур MOUSEINPUT


Diamond Cat   (2003-03-14 14:39:00) [3]

т.е.
для начала надо
g.dwFlags:=MOUSEEVENTF_ABSOLUTE ;
.......
и потом уже приведенный код
пробовал нифига результат тотже


Игорь Шевченко   (2003-03-14 14:32:00) [4]

Diamond Cat © (14.03.03 14:28)

А зачем SetCursorPos ?

Тот же SendInput

MOUSEEVENTF_ABSOLUTE
Specifies that the dx and dy members contain normalized absolute coordinates. If the flag is not set, dxand dy contain relative data (the change in position since the last reported position). This flag can be set, or not set, regardless of what kind of mouse or other pointing device, if any, is connected to the system. For further information about relative mouse motion, see the following Remarks section.
MOUSEEVENTF_MOVE
Specifies that movement occurred.


Diamond Cat   (2003-03-14 14:28:00) [5]

2 Игорь Шевченко: да ну вас, это не интересно и прозрачно
хочется именно sendinput темболее что сказано что действия происходят по координатам указанным в tagmouseinput, ан нет не происходят, а гонять туда курсор (setcursorpos) тоже не интересно


Игорь Шевченко   (2003-03-14 14:23:00) [6]

Потому что мышка туда не подвинута. Иначе у системы ум за разум зайдет - мышка в одном месте, а клик в другом.
В твоем случае, может быть, проще использовать
PostMessage(hWnd, WM_LBUTTONDOWN, кнопки/клавиши, требуемые_координаты) и PostMessage(hWnd, WM_LBUTTONUP, ...)


Наверх

Титульная страница Поиск, карта сайта Написать письмо