Главная страница
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.017 c
1-49985
AMQ
2002-04-26 10:31
2002.05.16
RegisterHotKey


1-49987
Sirus
2002-04-30 09:53
2002.05.16
Как вычислить количество дней с определенной даты до согедня???


4-50170
Viktor_TM
2002-03-15 14:41
2002.05.16
Отслеживание выполняемых процессов


1-50022
MisterBin
2002-05-01 12:38
2002.05.16
Помогите с Integer и String


4-50177
Win32
2002-03-12 21:59
2002.05.16
Функции в USER.EXE, RUNDLL32.EXE, RUNONCE.DLL, SHELL32.DLL и подобные.......