Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие клавиши, в другом окне 
:(
    Опции темы
TForumUser
Дата 22.3.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 7.7.2007

Репутация: 0
Всего: 0



Здравствуйте, появилась необходимость отловить нажатие клавиши в то время, пока окно свернута или сидит в трее. Тоесть мне надо, чтобы через некотрое время после нажатия пользователем клавиши (F2) программа издала звуковой сигнал (beep). При этом фокус наведен на окно, не являющееся окном программы (программа свернута). Как можно это реализовать? Заранее спасибо.
--------------------
Экономте электроэнергию! Выключайте Num Lock!
PM MAIL ICQ   Вверх
Dmi3ev
Дата 22.3.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



TForumUser, Хуки тебе нужны
вот пример, который тебе нужен
http://www.z-oleg.com/delphi/hardw2.htm


--------------------

PM MAIL   Вверх
TForumUser
Дата 22.3.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 7.7.2007

Репутация: 0
Всего: 0



Сделал F2 горячей клавишей, получилось следующее:
Код
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure WMHotKey(var Mess:TWMHotKey);message WM_HOTKEY;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMHotKey(var Mess: TWMHotKey);
begin
 Sleep(1000);
 Beep;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 RegisterHotKey(Handle, 1, 0, vk_F2);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 UnregisterHotKey(Handle, 1);
end;

Сигнал есть, программа работает, но тянет одеяло на себя: горячая клавиша F2 во время работы программы больше не обрабатывается ни одним прилжением. Как решить эту проблемму, чтобы работа программы не влияла на работоспособность других приложений, клавиша F2 должна остаться горячей для всех остальных программ.
--------------------
Экономте электроэнергию! Выключайте Num Lock!
PM MAIL ICQ   Вверх
Dmi3ev
Дата 22.3.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41



TForumUser, а ниже прокрутить ты не пробовал, про hook? Тебе нужен именно он...
Горячие клавиши тут не при чем...

Добавлено через 2 минуты и 11 секунд
Тебе не нужно назначать свои горяие клавиши, тебе нужно анализировать, что нажал пользователь, я так понял...

Добавлено через 3 минуты и 6 секунд
Перехват нажатия клавиши в Windows (hook)
вот это найди по ссылочке и будет тебе счастье...

Это сообщение отредактировал(а) Dmi3ev - 22.3.2009, 19:13


--------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.