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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 23:27   #1
Dragon54
 
Аватар для Dragon54
 
Регистрация: 10.07.2009
Сообщений: 3
Вопрос Переназначение клавиши. Delphi.

Всем привет =)

Делать было нечего... и решил написать программку, но не получилось...

В общем, необходимо что бы при зажатой клавише (V или ALT) эмулировалось нажатие пробела с заданной частотой.

Вроде легко, но надо чтобы нажатие клавиши перехватывалось при запущенной игре. Наверное это придется делать в dll, но я, мягко говоря, мало чего понимаю в их написании... Так что все мои попытки написания dll'ки не увенчались успехом.

Вот что собственно надо сделать, только глобально, так как при запущенной игре прога не работает.

Код:
var
  Form1: TForm1;

 implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if getasynckeystate($56)<>0 then
Timer2.Enabled:=true
else
Timer2.Enabled:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Timer2.Enabled:=False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
keybd_event($20, 0, 0, 0);
keybd_event($20, 0, KEYEVENTF_KEYUP, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer2.Interval:=StrToInt(Edit1.Text);
end;

end.
Ваши советы?!)
-Интернет - как жизнь, смысла нет, а уходить не хочется.. (с)
Dragon54 вне форума Ответить с цитированием
Старый 11.07.2009, 00:41   #2
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Код:
 private
    { Private declarations }
  procedure WMHotKey(var Mess:TWMHotKey);message WM_HOTKEY;
Код:
procedure TForm1.WMHotKey(var Mess: TWMHotKey);
begin
//Твои действия
end;
Код:
RegisterHotKey(Handle, 1 ,0, vk_F7);//F7 //В создании формы
Код:
UnregisterHotKey(Handle, 1);//При закрытии программы

Последний раз редактировалось Lime; 11.07.2009 в 00:51.
Lime вне форума Ответить с цитированием
Старый 11.07.2009, 02:39   #3
Dragon54
 
Аватар для Dragon54
 
Регистрация: 10.07.2009
Сообщений: 3
По умолчанию

Ну это работает тоже только в пределах программы.

Такс, раз не совсем понятно что хочу сделать, приведу игровой пример:
В игре при зажатом пробеле выполняется полезное действие, но всего 10 секунд, если пробел нажать-отпустить-нажать-отпустить, то можно немного продлить это время, но постоянно долбить пробел не очень хочется, вот я и пытаюсь повесить эту функцию на другую клавишу.
Но что-то мне подсказыват что для этого надо копаться в файлах самой игры....
-Интернет - как жизнь, смысла нет, а уходить не хочется.. (с)
Dragon54 вне форума Ответить с цитированием
Старый 11.07.2009, 02:43   #4
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от Dragon54 Посмотреть сообщение
Ну это работает тоже только в пределах программы.
Вполне хорошо работает вне программы. Главное грамотно убрать .
Я так сделал программу скринер.
Так-же делал скриншоты в игре используя данный метод.
Lime вне форума Ответить с цитированием
Старый 11.07.2009, 03:19   #5
Dragon54
 
Аватар для Dragon54
 
Регистрация: 10.07.2009
Сообщений: 3
По умолчанию

хм =/
главное грамотно убрать что?..
-Интернет - как жизнь, смысла нет, а уходить не хочется.. (с)
Dragon54 вне форума Ответить с цитированием
Старый 11.07.2009, 10:25   #6
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от Dragon54 Посмотреть сообщение
хм =/
главное грамотно убрать что?..
После себя
Код:
UnregisterHotKey
Изза этой прелести , иногда после повторного запуска не пашет.
Lime вне форума Ответить с цитированием
Старый 11.07.2009, 11:37   #7
stiv73
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 26
По умолчанию

Пиши в асю 402114052
stiv73 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие клавиши (Delphi) VadEr Помощь студентам 3 08.06.2009 17:00
Нажатие клавиши format Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.05.2008 15:25
Клавиши RealSHELS Общие вопросы Delphi 3 27.03.2008 22:32
Клавиши xakkkkker Общие вопросы Delphi 1 23.03.2008 10:45
По нажатию, каких сочетаний клавиш можно программно развернуть приложение, если оно свернуто в трее? Johnny_B Win Api 1 04.06.2007 08:20