问题
I remember using a program, some years back, that allowed me to fine-tune my monitor's settings with custom gamma ramps and other adjustments. It had the ability to create different screen-settings profiles for different uses, and setup global hotkey shortcuts to activate them without switching out of the program you're in.
My question is, how do you set up the hook for that? I'm sick of WINDOWS-D minimizing everything when I only want access to the desktop in one screen and I want to keep working in the other one. (I have 2 monitors for a reason!) So I figure it shouldn't be that difficult to hack up a little Delphi app that will minimize everything on one monitor. The only problem is hooking it to a hotkey. Does anyone know what the API is for this?
回答1:
http://www.swissdelphicenter.ch/torry/showcode.php?id=147
Basically there are three steps:
Register
// Register Hotkey Win + A
id1 := GlobalAddAtom('Hotkey1');
RegisterHotKey(Handle, id1, MOD_WIN, VK_A);
Handle
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 !');
Unregister
UnRegisterHotKey(Handle, id1);
GlobalDeleteAtom(id1);
来源:https://stackoverflow.com/questions/467152/how-do-i-hook-global-shortcuts-in-windows