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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.05.2011, 11:19
HunteRus HunteRus вне форума
Прохожий
 
Регистрация: 02.10.2010
Адрес: В Питере
Сообщения: 14
Версия Delphi: Delphi5
Репутация: 10
По умолчанию CS нажатие на кнопки клавы

Народ я хочу написать прогу чтоб стрейфы в контре делать но не могу управлять кнопками клавы в контре, тока мышью(а этого мало). Подскажите плз методы для нажатия желательно чтоб в контре нажималось.

Не работающие в контре методы:
1) Контра не реагирует на такие нажатия
Код:
procedure SimulateKeystroke(Key : byte; extra : DWORD);
begin
    keybd_event(Key,extra,0,0);
    keybd_event(Key,extra,KEYEVENTF_KEYUP,0);
end;

procedure SimulateKeyDown(Key : byte; extra : DWORD);
begin
    keybd_event(Key,0,0,0);
end;

procedure SimulateKeyUp(Key : byte; extra : DWORD);
begin
    keybd_event(Key,0,KEYEVENTF_KEYUP,0);
end;

2) И на отправку месаджа тоже
Код:
  sendMessage(handle, WM_KEYDOWN, 65, 0); //На это не реагирует
  sendMessage(handle, WM_CLOSE, 65, 0); //А тут реагирует(закрывается)
__________________
Код:
procedure UnleassFor(i: int64) UnleassFor(i + 1);

...

UnleassFor(0);
Бесконечный For
Ответить с цитированием
  #2  
Старый 31.05.2011, 00:51
foka2000 foka2000 вне форума
Прохожий
 
Регистрация: 31.05.2011
Сообщения: 10
Репутация: 10
По умолчанию

Мышью не мало,а достаточно. Полноценно используйте мышь.
Ответить с цитированием
  #3  
Старый 07.06.2011, 16:47
HunteRus HunteRus вне форума
Прохожий
 
Регистрация: 02.10.2010
Адрес: В Питере
Сообщения: 14
Версия Delphi: Delphi5
Репутация: 10
По умолчанию

Мало, т.к. мне и для распрыга надо и двигаться вперед/назад - не хватает ((( я юзаю все кнопки на мыши и колесо
__________________
Код:
procedure UnleassFor(i: int64) UnleassFor(i + 1);

...

UnleassFor(0);
Бесконечный For
Ответить с цитированием
  #4  
Старый 07.06.2011, 19:18
einstein einstein вне форума
Начинающий
 
Регистрация: 02.09.2010
Адрес: Город
Сообщения: 143
Репутация: -4653
По умолчанию

а алиасами что мешает сделать?
Ответить с цитированием
  #5  
Старый 04.09.2011, 13:42
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

У меня такая же история, но только с Grand Theft Auto: Vice City Deluxe: писал программу, которая при нажатии горячей клавиши вводит в игре чит-код.
Ответить с цитированием
  #6  
Старый 04.09.2011, 22:27
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Цитата:
Сообщение от HunteRus
Народ я хочу написать прогу чтоб стрейфы в контре делать но не могу управлять кнопками клавы в контре, тока мышью(а этого мало). Подскажите плз методы для нажатия желательно чтоб в контре нажималось.

Не работающие в контре методы:
1) Контра не реагирует на такие нажатия
Код:
procedure SimulateKeystroke(Key : byte; extra : DWORD);
begin
    keybd_event(Key,extra,0,0);
    keybd_event(Key,extra,KEYEVENTF_KEYUP,0);
end;

procedure SimulateKeyDown(Key : byte; extra : DWORD);
begin
    keybd_event(Key,0,0,0);
end;

procedure SimulateKeyUp(Key : byte; extra : DWORD);
begin
    keybd_event(Key,0,KEYEVENTF_KEYUP,0);
end;

2) И на отправку месаджа тоже
Код:
  sendMessage(handle, WM_KEYDOWN, 65, 0); //На это не реагирует
  sendMessage(handle, WM_CLOSE, 65, 0); //А тут реагирует(закрывается)
попробуй


Код:
var
Layout    : array [0..KL_NAMELENGTH] of Char;

  if Layout <> '00000409' then
  begin
    LoadKeyboardLayout('00000409', klf_activate);                 
    ActivateKeyboardLayout(LoadKeyboardLayout('00000409', 0), 0);
  end;

Тут мы раскладку клавиатуры  меняли на ENG
keybd_event(VK_SPACE,0,0,0);
Sleep(10);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
Ответить с цитированием
  #7  
Старый 05.09.2011, 10:17
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

я тоже для гта писал чтобы читы случайные вводила(keybd_event), потом переделал для samp-а - как удобную альтернативу auto-hotkey, если нада выложу
Ответить с цитированием
  #8  
Старый 15.09.2011, 19:37
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Цитата:
Сообщение от Pyro
я тоже для гта писал чтобы читы случайные вводила(keybd_event), потом переделал для samp-а - как удобную альтернативу auto-hotkey, если нада выложу
Будь добр! Поделись.
Ответить с цитированием
  #9  
Старый 16.09.2011, 07:02
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

там если добавляешь в список надо Active перевключить, чтобы новые хоткеи зарегились, и изменеения нет только удалить/добавить в остальном все должно работать как ожидается
и на сколько поню в коде небольшой хаос многое можно поудалять
Вложения
Тип файла: 7z keybd_ev.7z (6.7 Кбайт, 20 просмотров)
Ответить с цитированием
  #10  
Старый 16.09.2011, 21:42
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Pyro, спасибо. Буду разбираться.
Ответить с цитированием
  #11  
Старый 17.09.2011, 10:32
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

GriLab Незачто, если бы я её продолжал доделывать для себя, то для юзерфрендли убрал бы чекбокс Active, а событие с него переназначил на FormAcrivate/Deactivate
Ответить с цитированием
  #12  
Старый 17.09.2011, 12:27
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Бессмысленная и вредная прога. Вы получите преимущество перед другими игроками нечестным путем. Вам бы понравилось, если бы противник игнорировал все ваши повреждения и перемещался мгновенно в любую точку зоны?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter