Как подключить глобальные ярлыки в Windows?
Вопрос
Я помню, как несколько лет назад использовал программу, которая позволила мне точно настроить параметры моего монитора с помощью пользовательских гамма-рамок и других настроек.У него была возможность создавать различные профили настроек экрана для разных целей и настраивать глобальные сочетания клавиш для их активации без выхода из программы, в которой вы находитесь.
Мой вопрос: как настроить для этого крючок?Мне надоело, что WINDOWS-D сворачивает все, когда мне нужен доступ к рабочему столу только на одном экране, а я хочу продолжать работать на другом.(У меня есть 2 монитора не зря!) Поэтому я считаю, что не так уж сложно взломать небольшое приложение Delphi, которое будет минимизировать все на одном мониторе.Единственная проблема — подключить его к горячей клавише.Кто-нибудь знает, что такое API для этого?
Решение
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);