Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
8 / 8 / 19
Регистрация: 15.12.2012
Сообщений: 91
1

Отследить нажатие кнопки с клавиатуры

25.10.2018, 14:27. Показов 1272. Ответов 2
Метки нет (Все метки)

Добрый день, написал я программу, которая отправляет пакеты, и в игре меняется одежда.

Хочу добиться того, чтобы я свернул свою программу, и по нажатию допустим на CAPSLOCK выполнялась процедура моей программы.

У меня это реализовано так:

На форме есть кнопка:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
    Packet('1100' + IntToHex(StrToInt(Edit1.Text) - 1, 2) + IntToHex(Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]), 2));
    ...
      if CheckBox15.Checked then
    Packet('1100' + IntToHex(StrToInt(Edit15.Text) - 1, 2) + IntToHex(Integer(ComboBox15.Items.Objects[ComboBox15.ItemIndex]), 2));
end;
И таймер:
Delphi
1
2
3
4
5
6
7
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 
  if GetAsyncKeyState($14) <> 0 then
    Button1.Click;
  sleep(200);
end;
Получается что таймер все время крутится, и как только я нажимаю КапсЛук, нажимается кнопка с отправкой пакетов. И по нажатию КапсЛука все работает! Даже если окно моей программы не активно и свернуто!

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

Я знаю что у меня сделано через костыль, подскажите как реализовать это нормально???? То есть чтобы программа ловила нажатие на клавишу всегда???
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2018, 14:27
Ответы с готовыми решениями:

Как отследить нажатие кнопки?
Приветик, всем!!!! Помогите, пожалуйста, мне надо отследить нажатие на кнопку на другой форме,а на...

Отследить нажатие кнопки del
Подскажите, как отследить нажатие кнопки del? Делаю так: procedure...

Событие - нажатие кнопки клавиатуры
Доброго дня! Немного подзабыл, подскажите, у меня есть 2 кнопки на форме: procedure...

Как отследить нажатие кнопки на сайте?
Всем привет! Интересует вопрос как отследить нажатие кнопки на сайте? Нажать ее можно с помощью...

2
422 / 340 / 196
Регистрация: 20.10.2016
Сообщений: 1,082
26.10.2018, 07:24 2
Лучший ответ Сообщение было отмечено den57 как решение

Решение

den57, юзайте RegisterHotKey и не нужны таймеры тут вообще.
1
8 / 8 / 19
Регистрация: 15.12.2012
Сообщений: 91
29.10.2018, 23:54  [ТС] 3
Цитата Сообщение от TFullControl Посмотреть сообщение
den57, юзайте RegisterHotKey и не нужны таймеры тут вообще.
Помог перенос sleep(200); в процедуру кнопки. Но я все равно переделал как вы сказали, спасибо, стало намного лучше работать приложение!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2018, 23:54

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как имитировать нажатие кнопки мыши или клавиатуры
ПОМОГИТЕ! Как имитировать нажатие кнопки мыши или клавиатуры

Как отследить нажатие кнопки?
можно ли как-нибудь отследить нажатие кнопки на форме без переменных типа bool (вообще без...

VBA отследить нажатие кнопки
Доброго времени суток. При нажатии кнопки, по которой происходит сохранение данных формы первым...

Отследить было ли нажатие кнопки
Отследить было ли нажатие кнопки Мне это необходимо для условия динамического нажатия другой кнопки

Отследить нажатие кнопки по USB шнуру
Есть кнопка и Usb шнур ! при нажатии на кнопку программа должна вывести текст или что либо (это не...

Как отследить нажатие кнопки на Frame?
Привет, сабж. на листе есть Frame1. на нем кнопка cmdbtn1. как отследить событие, назовем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.