Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.028 c
1-49914
catsex
2002-05-02 15:53
2002.05.16
Выключение WINDOW по дате.


3-49819
ao1973
2002-04-18 11:44
2002.05.16
КАК програмно СОЗДАТЬ файл БД ACESS-a ?


1-49953
JMax
2002-05-04 02:31
2002.05.16
Edit


1-49948
ymin
2002-04-30 16:11
2002.05.16
Запустил программу...


1-49938
BAHO
2002-04-25 02:04
2002.05.16
ListView с разукрашенными ячейками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский