![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Всем привет !!!! Не знал куда написать эту тему поэтому написал суда =) Народ подскажите пожалуйста как реализовать программное нажатие кнопки мыши по заданным координатам например 200x30. Заранее спасибо
![]() |
|
#2
|
||||
|
||||
|
GetCursorPos(A) - узнать текущее положение мыши (где A : TPoint)
SetCursorPos(X,Y) - установить новое положение мыши mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0) - нажать левой кнопки mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0) - отпустить левую кнопку |
|
#3
|
||||
|
||||
|
Цитата:
v1s2222, а не мог бы ты воложить готовую программку , исходник ??? ![]() |
|
#4
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject); begin SetCursorPos(50,50); // ставим мышку в положение 50, 50 mouse_event(MOUSEEVENTF_LEFTDOWN,50,50,0,0); // нажимаем левую кнопку мыши по координатам 50, 50 mouse_event(MOUSEEVENTF_LEFTUP,50,50,0,0); // отпускаем левую кнопку мыши... end; |
|
#5
|
||||
|
||||
|
Большое спасибо =) Если что может возникнет еще вопрос =)
|
|
#6
|
||||
|
||||
|
А не мог бы ты еще подсказать как зделать что бы координаты нужно было писать в Edit ??? Заранее спасибо )))
|
|
#7
|
||||
|
||||
|
Брось на форму 2 едита и одну кнопку, по нажатию на кнопку пиши код:
Код:
procedure TForm1.Button1Click(Sender: TObject); var X, Y: Integer; begin X := StrToIntDef(Edit1.Text, 0); Y := StrToIntDef(Edit2.Text, 0); SetCursorPos(X, Y); mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0); end; ЗЫ Вместо StrToIntDef можешь использовать StrToInt. Это просто отлавливание ошибок, если человек введет не целое число, то будет нажата мышка по координатам 0, 0. |
|
#8
|
||||
|
||||
|
Ага спс ))) Очень помогли ))) Может возникнуть еще вопрос ))) ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО)))
|
|
#9
|
||||
|
||||
|
Как зделать так что бы программа брала координаты из Edit1 и Edit2 (X=Edit1 а Y=Edit2) и перемещала курсор по этим координатам потом ждала какоето время например 5 секунд и брала координаты из Edit3 и Edit4 (X=Edit3 а Y=Edit4) и перемещала курсор по этим координатам и так до 3 шагов. А потом повторяла эти действия циклом. Заранее спасибо
![]() |
|
#10
|
||||
|
||||
|
Канешно не то что тебе нужно, но попробуй вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
OK: boolean;
begin
OK:=false;
SHOWMESSAGE('=)');
repeat
randomize;
setcursorpos(random(Screen.Width-1),random(Screen.Height-1));
sleep (100);
until OK;
end;
end.Последний раз редактировалось Admin, 06.11.2010 в 13:45. |
|
#11
|
||||
|
||||
|
to Prame, ну и что за хрень ты людям советуешь?
to ***, ничего сложного нету, вот тебе решение (хоть и кривое но должно работать )Код:
procedure TForm1.Button1Click(Sender: TObject); var X, Y: Integer; begin X := StrToIntDef(Edit1.Text, 0); Y := StrToIntDef(Edit2.Text, 0); SetCursorPos(X, Y); mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0); sleep(5000) //лучше конечно delay X := StrToIntDef(Edit3.Text, 0); Y := StrToIntDef(Edit4.Text, 0); SetCursorPos(X, Y); mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0); sleep(5000) //лучше конечно delay X := StrToIntDef(Edit4.Text, 0); Y := StrToIntDef(Edit5.Text, 0); SetCursorPos(X, Y); mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0); end; как зациклить думаю сам додумаешься |
|
#12
|
|||
|
|||
|
Блин...у меня когдато была похожая програмка...только там параметри задавались в файле TXT..я её юзил для автоматических боэв в онлайн шпильках...за ночь такой опыт мне набивало...могу поискать если кому поможет
uopilot Последний раз редактировалось QT8, 06.11.2010 в 12:46. |