Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 22:12   #1
leonid4244
 
Регистрация: 15.10.2009
Сообщений: 9
По умолчанию Эмулятор клика мыши в Делфи

Здаствуйте
У меня такая проблема не магу сделать так чтоб мыш просто кликала левой кнопкой где угодна в любом месте и в любом приложений просто клик нечего сверхъестественного но не как делал по разному: код

procedure TForm1.Timer2Timer(Sender: TObject);
var
Pt: TPoint;
begin
//Преобразуем Pt к аболютным координатам курсора мышки
GetCursorPos(Pt);
//Переместим курсор мыши
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
//Имитируем нажатие левой кнопки мыши
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
//Имитируем отпускание левой кнопки мыши
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
foo: TPoint;
begin
GetCursorPos(foo);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, foo.X,foo.Y, 0, 0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, foo.X,foo.Y, 0, 0);
end;


procedure TForm1.Timer2Timer(Sender: TObject);
var
foo: TPoint;
begin
GetCursorPos(foo);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, foo.X,foo.Y, 0, 0);
GetDoubleClickTime;
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, foo.X,foo.Y, 0, 0);
end;

Не большой результат был вот с этим кодам но только сама форма реагировала как бы на клик но ни одна кнопка на ней не среагировала.
Вот кодкод

Procedure TForm1.Timer2Timer(Sender: TObject);
var
foo: TPoint;
begin
GetCursorPos(foo);
sendmessage(Handle, WM_LBUTTONDOWN, MK_LBUTTON, foo.X +foo.Y shl 16);
sendmessage(Handle, WM_LBUTTONUP, MK_LBUTTON, foo.X +foo.Y shl 16);
end;

И еще множество других попыток все выложить место не хватит.
Большинство вариантов на этом форуме перепробовал так что прошу не бросаться ссылками только действительно приведший к результату.

У меня Windows 7 и Dlphi 2010

Может в них какая заковырка в общем не знаю голова слетает с плеч прошу помогите.

Заранее способа буду следить за ответами
leonid4244 вне форума Ответить с цитированием
Старый 29.10.2011, 14:28   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

в таймере пишете:
Код:
SetCursorPos(50,205);//текущее положение мыши
Mouse_Event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//левый клик мыши
Mouse_Event(MOUSEEVENTF_LEFTUP,0,0,0,0);
у меня под XP и 7 работает стабильно. координаты (50,205) перепишите на свои
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 29.10.2011, 20:09   #3
leonid4244
 
Регистрация: 15.10.2009
Сообщений: 9
По умолчанию

Спасибо замечательный пример все работает

Но теперь новая проблема при запуске онлайн игры программа перестает работать

Читал на форумах что современные онлайн игры запускают свои драйвера на Клаву и на мыш (правдо??) или защиту там какую та как

это все обойти программно обойти ??
leonid4244 вне форума Ответить с цитированием
Старый 29.10.2011, 20:12   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Читал на форумах что современные онлайн игры запускают свои драйвера на Клаву и на мыш (правдо??) или защиту там какую та как
странное чтото вы читали...они используют DirectInput, для прямого чтения данных с устройств ввода.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.10.2011, 20:56   #5
leonid4244
 
Регистрация: 15.10.2009
Сообщений: 9
По умолчанию

Тогда объясните почему как тока запускаю игру код сразу не работает

Не в игре не в Винде не всомой форме программы
leonid4244 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция клика мыши в чужом окне MyIE Win Api 16 06.10.2011 23:26
Имитация клика мыши Anfall Общие вопросы Delphi 20 05.10.2010 09:15
Эмуляция клика мыши в C# GApe Общие вопросы C/C++ 0 04.05.2010 20:40
Имитация клика мыши tipzozborova JavaScript, Ajax 1 04.03.2009 07:27
Эмуляция клика мыши Stimer Win Api 1 05.02.2009 04:06