Главная страница
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.015 c
3-49857
Nestor
2002-04-13 22:35
2002.05.16
Настройка Oracle 8.0.5. Help!!!!


14-50134
VictorT
2002-04-05 11:42
2002.05.16
Подскажите, где скачать програмку...


1-50042
MasterA
2002-04-21 20:05
2002.05.16
Архивация по алгоритму ХАФФМАНА


14-50097
Deus
2002-04-04 16:27
2002.05.16
Чё же такой форум фиговый?


4-50181
zondor
2002-03-13 19:29
2002.05.16
Clipboard