Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/35: Рейтинг темы: голосов - 35, средняя оценка - 4.74
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
1

Delphi! Перехват нажатия клавиши при свернутой форме?

24.08.2011, 17:59. Просмотров 6477. Ответов 7

скажите, как перехватить нажатие клавиши, допустим ctr, когда форма свернута и является не активной?

при активной/не свернутой форме использую onkeydown, но вот если сверну и фокус уберу с программы, то она не срабатывает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2011, 17:59
Ответы с готовыми решениями:

Перемещение картинки по форме при нажатии на клавиши стрелок на клавиатуре
Хочу, чтобы при нажатии на клавиши стрелок на клавиатуре картинка двигалась....

Перехват нажатия кнопок
Надо что бы при нажатии кнопки Windows, на клавиатуре, не появлялось меню...

Правильный перехват клавиши
Всем привет. Есть такой код: private procedure WMHotKey(var Msg:...

Перехват нажатия стрелок клавиатуры в TPanel.
Я вот тут уже 3.5 часа бьюсь над задачей - нужно перехватить нажатие стрелок...

Отлов нажатия и удержания клавиши
Всем привет! Передо мною стала задача отловить удержание клавиши prtsc,я решил...

7
DenNik
Непрофессионал
1803 / 1469 / 307
Регистрация: 26.07.2011
Сообщений: 8,065
25.08.2011, 09:25 2
Timer1.Interval:= 10;
Delphi
1
2
3
4
5
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetAsyncKeyState(VK_CONTROL) <> 0 then
  ShowMessage('Нажат контрол!');
end;
1
Somebody
2801 / 1612 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
25.08.2011, 12:00 3
По таймеру - это нехорошо, а с интервалом 10 он всё равно не будет работать. Смотри в сторону SetWindowsHookEx.
0
DenNik
Непрофессионал
1803 / 1469 / 307
Регистрация: 26.07.2011
Сообщений: 8,065
25.08.2011, 12:19 4
Цитата Сообщение от Somebody Посмотреть сообщение
По таймеру - это нехорошо, а с интервалом 10 он всё равно не будет работать. Смотри в сторону SetWindowsHookEx.
то, что может быть и нехорошо - это согласен, кривовато (хотя и просто), однако с интервалом 10 он прекрасно работает!
0
Somebody
2801 / 1612 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
25.08.2011, 16:26 5
Цитата Сообщение от DenNik Посмотреть сообщение
однако с интервалом 10 он прекрасно работает!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  Start, n: Cardinal;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Start := GetTickCount();
  n := 0;
  Timer1.Interval := 10;
  Timer1.Enabled := true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(n);
  if n < 1000 then
    exit;
  Timer1.Enabled := false;
  Label1.Caption := FloatToStr((GetTickCount() - Start) / n);
end;
У меня 15,625.
0
DenNik
Непрофессионал
1803 / 1469 / 307
Регистрация: 26.07.2011
Сообщений: 8,065
25.08.2011, 16:57 6
Somebody, и что это значит? приведенный код совершенно не соответствует теме, он даже никак не относится к моему сообщению

Delphi
1
2
3
4
5
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetAsyncKeyState(VK_CONTROL) <> 0 then
  ShowMessage('Нажат контрол!');
end;
поясню: этот код 100 раз в секунду проверяет состояние клавиши Ctrl.
0
Somebody
2801 / 1612 / 251
Регистрация: 03.12.2007
Сообщений: 4,215
Завершенные тесты: 3
25.08.2011, 19:42 7
Цитата Сообщение от DenNik Посмотреть сообщение
поясню: этот код 100 раз в секунду проверяет состояние клавиши Ctrl
А я показал, что не 100 раз в секунду, а реже. Таймер с интервалом 10 сраватывает примерно с интервалом 15. Не может TTimer с маленьким интервалом работать.
0
DenNik
Непрофессионал
1803 / 1469 / 307
Регистрация: 26.07.2011
Сообщений: 8,065
26.08.2011, 10:21 8
Цитата Сообщение от Somebody Посмотреть сообщение
А я показал, что не 100 раз в секунду, а реже. Таймер с интервалом 10 сраватывает примерно с интервалом 15. Не может TTimer с маленьким интервалом работать.
при решении вышеприведенной задачи это не суть важно, 100 раз в секунду или 70!
одно нажатие на клавишу в среднем полсекунды занимает
0
26.08.2011, 10:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2011, 10:21

Имитация нажатия клавиши для WebBrowser-а
ОЧЕНЬ НАДО!!! помогите пожалуйста выполнить следующее: при нажатии на Button...

процедуры клавиши мыши в delphi
Ребят подскажите процедуры к клавишам мыши: При нажатии левой кнопки мыши...

Авто-нажатие клавиши на Delphi
Всем привет! Решил написать автокликер для клавиатуры и столкнулся с некоторыми...


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

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

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