Как перехватить глобальные ярлыки в Windows? - PullRequest
5 голосов
/ 22 января 2009

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

Мой вопрос, как вы настраиваете крючок для этого? Мне надоело, что WINDOWS-D минимизирует все, когда мне нужен только доступ к рабочему столу на одном экране, и я хочу продолжать работать на другом. (У меня есть 2 монитора по причине!) Так что я думаю, что не должно быть так сложно взломать небольшое приложение Delphi, которое минимизирует все на одном мониторе. Единственная проблема заключается в подключении к горячей клавише. Кто-нибудь знает, что за API для этого?

1 Ответ

17 голосов
/ 22 января 2009

http://www.swissdelphicenter.ch/torry/showcode.php?id=147

В основном есть три шага:

Регистрация

// Register Hotkey Win + A
id1 := GlobalAddAtom('Hotkey1');
RegisterHotKey(Handle, id1, MOD_WIN, VK_A);

Ручка

procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

{ .... }

// Trap Hotkey Messages
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = id1 then
    ShowMessage('Win + A pressed !');

Разрегистрировать

UnRegisterHotKey(Handle, id1);
GlobalDeleteAtom(id1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...