Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 767

/ вопрос открыт /

Здравствуйте, господа эксперты! У меня есть свёрнутое в трэй приложение. Как его развернуть на экран с помощью определенной комбинации клавиш?

alone Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: alone (статус: Посетитель)
Вопрос отправлен: 20 июля 2007, 00:18
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Смотри в хэлпе инфу про WinAPI-функции RegisterHotkey() и UnRegisterHotkey().
Хотел я сначала выдрать кусок кода из своего исходника, но там будет сложно разобраться, т.к. в настройках программы есть опция выбора комбинации горячих клавиш для разворачивания программы из трея и т.п. Короче, много лишнего. Поэтому я нашёл пример попроще из одного справочника.

Вопрос:
Как глобально перехватить нажатие кнопки PrintScreen?
Ответ:
В примере для глобального перехвата нажатия клавиши printscreen регистрируется горячая клавиша (hot key).
Пример:

type
TForm1 = class(TForm)
 procedure FormCreate(Sender: TObject);
 procedure FormDestroy(Sender: TObject);
private
 { Private declarations }
 procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
public
 { Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
const id_SnapShot = 101;
 
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
if Msg.HotKey = id_SnapShot then
 ShowMessage('GotIt');
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle,
              id_SnapShot,
              0,
              VK_SNAPSHOT);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey (Form1.Handle, id_SnapShot);
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 20 июля 2007, 08:25
Оценка за ответ: 5

Комментарий к оценке: Спасибо за пример!

Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.03 сек.