|
|
Регистрация | << Правила форума >> | 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; как зациклить думаю сам додумаешься Последний раз редактировалось Admin, Сегодня в 10:32. |
#12
|
|||
|
|||
Блин...у меня когдато была похожая програмка...только там параметри задавались в файле TXT..я её юзил для автоматических боэв в онлайн шпильках...за ночь такой опыт мне набивало...могу поискать если кому поможет
uopilot Последний раз редактировалось QT8, 06.11.2010 в 12:46. |