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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2015, 01:38
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Передавать движение мыши в другое окно

Здравствуйте!

В познавательных целях, хочу сделать программку, анти-отдачу для шутеров. Что бы во время стрельбы, прицел опускался вниз.

Я в принципе это сделал, но не так как мне хотелось.
В таймере
Код:
if GetAsyncKeyState(VK_LBUTTON)<>0 then
 begin
    mouse_event(MOUSEEVENTF_MOVE, 0, pics, 0, 0);
 end;
При этом во всей системе курсор движется вниз, во время лкм.

Подскажите как можно передать движение мыши в окно игры?
Допустим игра counter-strike..

Код:
okno: HWND;
 
okno:=FindWindow(nil,'Counter-Strike');  
SendMessage(okno ....................... и вот тут у меня проблемы...)
Пробовал MOUSEEVENTF_MOVE - не передает движения в окно кс
Поделитесь опытом) что можно использовать на подобии MOUSEEVENTF_MOVE, что бы двигать курсором в окне?
Ответить с цитированием
  #2  
Старый 19.04.2015, 01:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Код:
okno:=FindWindow(nil,'Counter-Strike');
Окно может называться не так. Проверь в отладчике переменную okno. Скорее всего она равна 0.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 19.04.2015, 07:23
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Код:
okno:=FindWindow(nil,'Counter-Strike');
Окно может называться не так. Проверь в отладчике переменную okno. Скорее всего она равна 0.
Не, проверял, окно называется именно так. Проверил с помощью найденного в инете кода
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
okno: HWND;
begin
okno:=FindWindow(nil,'Counter-Strike'); \\ Ищет окно кс
if GetAsyncKeyState(VK_SPACE) <> 0 then \\ если нажат пробел тогда
begin
SendMessage(okno,WM_KEYDOWN ,VK_SPACE, MakeLong(0, MapVirtualKey(VK_SPACE, 0))); \\ эмулируется нажатие пробела
sleep(20);
SendMessage(okno,WM_KEYUP ,VK_SPACE, MakeLong(0, MapVirtualKey(VK_SPACE, 0))); \\ эмулируется отпускание пробела
sleep (1);
end;
end;
Всё работает, при нажатии на пробел, постоянно прыгаю, пока не отпущу пробел.
Мне нужно узнать, как двигать курсор в самой игре. Ну так сказать, засунуть "mouse_event(MOUSEEVENTF_MOVE, 0, pics, 0, 0);" в Sendmessage. Я пробовал писать
Код:
SendMessage(okno, mouse_event ....... ) Но это не правильно.. Прога не компилируется, выдается ошибка
еще пробовал Sendmessage(okno, mouse_move..... ) - тоже не помогло..
Как передать окну движение мышью ?

Последний раз редактировалось Gareth, 19.04.2015 в 11:44.
Ответить с цитированием
  #4  
Старый 19.04.2015, 23:29
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для начала, нужно убедиться, что окно найдено. Поставьте курсор на строку 4 (первого кода), и нажмите F4. Теперь подведя мышку к слову okno, можно увидеть значение переменной.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025