
Отвечаю сам себе ... и всем остальным кто столкнулся с похожей проблемой.
Выход из положения - написать функцию которая регистрировала бы горячую клавишу
Код:
const id_F6 = 101;
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
if Msg.HotKey = id_F6 then
Begin
if Form1.Visible = False Then Form1.Show Else Form1.Hide;
end;
end;
А вот собственно и применение:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Showmainform:=false;
RegisterHotKey(Form1.Handle,
id_F6,
0,
VK_F6);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey (Form1.Handle, id_F6);
end;
Я посчитал нужным добавить
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowLong(Handle, GWL_HWNDPARENT, GetDesktopWindow); // Устанавливаем родителем Desctop
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); // Перемещаем наверх
end;
и теперь при нажатии "волшебной кнопки" мое приложение перекрывает остальные окна.
P.S.Приложение установил как службу. Приложение запускается с скрытой от пользователя формой, как это сделать ...
гугл вам в помощь.