WM_HOTKEY i TNotifyIconData

0

Witam wszystkich

Mam taki kod i zarazem problem.
Program wrzucam do Tray-a, a także rejestruję skrót Ctrl+F1.
Skrót działał dopóki nie wrzuciłem programu do Tray-a.
Co trzeba zrobić, aby skrót ten działał. Jak obsłużyć WM_HOTKEY ?
Próbowałem już na wiele sposobów, także w WndProc to zrobić, ale nie działa.

Dzięki za wskazówki i odpowiedzi. Pzdr

Kod:

  private
    procedure WM_HOTKEY(var Msg: TMessage); message WM_HOTKEY;
  protected
     procedure WndProc(var Msg: TMessage); override;
  public
     IconNotifyData: TNotifyIconData;
  end;

procedure TFrm.WndProc(var Msg : TMessage);
var p: TPoint;
begin
  if (Msg.Msg = WM_USER + 1) and (Msg.lParam = WM_RBUTTONDOWN) then begin
    GetCursorPos(p);
    PopupMenu1.Popup(p.x, p.y);
  end;
  inherited;
end;

procedure TFrm.WM_HOTKEY(var Msg: TMessage);
begin
 if Msg.WParam = $0001 then Frm.Show;  //cokolwiek wrzucę po then to nie działa :(
end;

procedure TFrm.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Application.Handle, $0001, MOD_CONTROL, VK_F1);

  BorderIcons := [biSystemMenu];
  with IconNotifyData do begin
    hIcon := Application.Icon.Handle;
    uCallbackMessage := WM_USER+1;
    cbSize := SizeOf(IconNotifyData);
    Wnd := Handle;
    uID := 100;
    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
  end;
  StrPCopy(IconNotifyData.szTip, 'Go To Internet');
  Shell_NotifyIcon(NIM_ADD, @IconNotifyData);
end;

procedure TFrm.Zamknij1Click(Sender: TObject);
begin
  UnregisterHotKey(Frm.Handle, $0001);
  Shell_NotifyIcon(NIM_DELETE, @IconNotifyData);
  Application.ProcessMessages;
  Application.Terminate;
end;
0

sciagnij sobie np. cooltrayicon (gdzies tu jest na 4p) i sprawdz jak to tam jest :P

0

procedure TFrm.WM_HOTKEY(var Msg: TMessage);
begin
if Msg.WParam = $0001 then Frm.Show; //cokolwiek wrzucę po then to nie działa :(
end;

bo moze wparam<>$0001
daj bez sprawdzenia warunku. Potem zbacz jaka ma wartosc wparam/lparam i dopiero dawaj warunek.

0

Przeglądnełem cooltrayicon i wszystko tam odnosi się do zdażeń myszki na ikonie w tray-u. Nadal próbuje i nic z tego nie wychodzi.

Mój problem jest taki: Jak np. pokazać <ort>z powrotem</ort> formę mojego programu, jeżeli program jest schowany w tray-u, za pomocą skrótu klawiaturowego ??

0

A to nie bedzie coś z hookami ?? ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1