Lo comentado por
dec, es para las teclas rápidas pulsadas
cuando tu aplicación tiene el foco, y quieres centralizar el proceso de qué hace cada tecla rápida al ser pulsada.
Al estar la aplicación escondida, hay que hacer un Hook a windows con esa tecla rápida, para ello se puede usar las funciones RegisterHotKey de la api de windows.
A partir de aquí, da igual en qué programa estes, al pulsar esa combinación, se enviará esa tecla a tu programa.
Para registrar las teclas puedes usar esto:
Código Delphi
[-]
procedure TForm1.DecodeHotKey(shortcut: Tshortcut; var key: Word; var modif: Integer);
var
comb: String;
shiftkey: TshiftState;
begin
modif := 0;
shortcuttokey(shortcut, key, shiftkey);
comb := shortcuttotext(shortcut);
if pos('Shift', comb) <> 0 then
inc(modif, 4);
if pos('Ctrl', comb) <> 0 then
inc(modif, 2);
if pos('Alt', comb) <> 0 then
inc(modif, 1);
end;
procedure FormCreate;
var teclappal :word;
modificadores:integer;
begin
decodehotkey(hotkey1.hotkey, teclappal, modificadores);
registerhotkey(self.Handle, 0, modificadores, teclappal);
decodehotkey(hotkey2.hotkey, teclappal, modificadores);
registerhotkey(self.Handle, 1, modificadores, teclappal);
end;
procedure FormClose;
begin
unregisterhotkey(self.Handle, 0);
unregisterhotkey(self.Handle, 1);
end;
Ahora, en nuestro programa tenemos que detectar cuando windows nos informa que se ha presionado F10 o F11:
Código Delphi
[-]
TForm1 = class (Tform)
protected
procedure WndProc(var Msg: TMessage); override;
end;
procedure TForm1.WndProc(var Msg: TMessage);
begin
if msg.msg = wm_hotkey then
begin
case msg.WParam of
0: Form1.Show; 1: Application.Terminate; end;
espero se entienda.
EDITO: No incluyo los uses porque son varios, simplemente haz clic sobre uno de ellos y pulsa F1, la ayuda de delphi te dirá los uses que necesites.
Un saludo