Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.16;
Скачать: CL | DM;

Вниз

RegisterHotKey   Найти похожие ветки 

 
AMQ   (2002-04-26 10:31) [0]

Функция RegisterHotKey регистрирует комбинацию клавиш.
Чтобы зарегистрировать в программе надо в качестве первого параметра указать
RegisterHotKey(form1.handle,...), а что надо указать, чтоб зарегестрировать эту комбинацию в Windows, в смысле если фокус не у моей формы?


 
Song ©   (2002-04-26 11:00) [1]

RegisterHotKey() регистрирует комбинацию во всей системе. И обрабатывается даже если на окне нет фокуса ввода.


 
Anar   (2002-04-30 08:51) [2]

RegisterHotKey() регистрирует там, куда указывает контекст воспроизведеения (DС). У неё по-моему такие параметры:
RegisterHotKey(hWND:HWND,...),указать надо form1.handle для твоей формы (где form1 - имя твоей формы). Просто я не знаю для всего Windows"a, но пo-моему для рабочего стола это DC это 0. Я так делал для рисования на desktope, но не могу тоже самое делать для RegisterHotKey().


 
Song ©   (2002-04-30 08:59) [3]

В FAQ есть пример использования RegisterHotKey() При чём тут DC...?


 
Vovchik ©   (2002-04-30 10:32) [4]

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


 
Севостьянов Игорь ©   (2002-04-30 12:46) [5]

Вот тебе пример:

const
ID_HOT_KEY = 9;

type
TfrmMain = class(TForm)
protected
procedure SetHotKey(var Msg: TMessage); message WM_HOTKEY;
end;

var
frmMain : TfrmMain;
ID : Integer;
--------------------------
procedure TfrmMain.FormCreate(Sender: TObject);
begin
ID := GlobalAddAtom("APP_HOTKEY");
RegisterHotKey(Handle, ID, MOD_CONTROL + MOD_WIN, ID_HOT_KEY);
end;
--------------------------
procedure TfrmMain.SetHotKey(var msg: TMessage);
begin
if (msg.LParamLo = MOD_CONTROL + MOD_WIN) and (msg.LParamHi = ID_HOT_KEY) then ShowApp;
end;
--------------------------
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, ID);
GlobalDeleteAtom(ID);
end;
--------------------------
procedure TfrmMain.ShowApp;
begin
if not IsIconic(Application.Handle) then Application.Minimize
else
begin
Application.Restore;
Application.BringToFront;
end;
end;
--------------------------

Да не забудь проверки проставить ...



Страницы: 1 вся ветка

Текущий архив: 2002.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-49866
Dorosh
2002-04-15 15:23
2002.05.16
Polaris DbTreeView


3-49846
Дмитрий Ковба
2002-04-18 19:13
2002.05.16
Интересный вопрос: сортировка связаных таблиц


1-49981
Riko
2002-04-29 18:24
2002.05.16
Копирование с поврежденного носителя...


7-50138
AiY
2002-02-11 19:46
2002.05.16
вопросик возник


6-50063
ATLANTIDO
2002-03-04 14:54
2002.05.16
SERVICES