Показать сообщение отдельно
  #8  
Старый 31.01.2010, 13:10
Аватар для bv7
bv7 bv7 вне форума
Прохожий
 
Регистрация: 29.01.2010
Сообщения: 4
Репутация: 10
По умолчанию

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

Код:
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.Приложение установил как службу. Приложение запускается с скрытой от пользователя формой, как это сделать ... гугл вам в помощь.
__________________
Жизнь хороша, если правильно подобрать антидепрессанты.
Ответить с цитированием