Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thiagobillieri

Tray Icon e teclas

Recommended Posts

Gostaria de saber como eu faço para quando eu iniciar meu aplicativo ele vá direto para a tray sem mostrar nenhum form. Como meu aplicativo roda na tray, queria saber como eu faço para saber quando as teclas Home, End, Page Up e Page Down são pressionadas.--Abraços,Thiago.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já vi componte que faz isso.

 

Mas já usei via código.

Para saber a tecla pressionada acho que você deve estar com a aplicação ativa e não como Tray.

 

unit Unit1; interface uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ,ShellAPI, Menus; const  wm_IconMessage = wm_User; type  TForm1 = class(TForm)  PopupMenu1: TPopupMenu;  Lloyd1: TMenuItem;  close1: TMenuItem;  procedure FormCreate(Sender: TObject);  procedure close1Click(Sender: TObject);  procedure FormDestroy(Sender: TObject);  procedure Lloyd1Click(Sender: TObject);   private  procedure IconTray (var Msg: TMessage);  message wm_IconMessage;  { Private declarations }  public  { Public declarations }  nid: TNotifyIconData;  end; var  Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject);begin  // carrega o ícone inicial  Icon.Handle := LoadIcon (HInstance, 'MAINICON');  // preenche os dados da estrutura NotifyIcon  nid.cbSize := sizeof (nid);  nid.wnd := Handle;  nid.uID := 1; // Identificador do ícone  nid.uCallBAckMessage := wm_IconMessage;  nid.hIcon := Icon.Handle;  nid.szTip := 'LloydSoft';  nid.uFlags := nif_Message or  nif_Icon or nif_Tip;  Shell_NotifyIcon (NIM_ADD, @nid);end; procedure TForm1.IconTray (var Msg: TMessage);var  Pt: TPoint;begin  if Msg.lParam = wm_rbuttondown then  begin  GetCursorPos (Pt);// SetForegroundWindow (Handle);  PopupMenu1.Popup (Pt.x, Pt.y);  end;end; procedure TForm1.close1Click(Sender: TObject);beginform1.close;end; procedure TForm1.FormDestroy(Sender: TObject);begin  nid.uFlags := 0;  Shell_NotifyIcon (NIM_DELETE, @nid);end; procedure TForm1.Lloyd1Click(Sender: TObject);beginShowmessage('LloydSoft é D+'); {Menu Popup}end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar o código. Por acaso ele vai direto pra tray? Ou mostra o form na tela?Em relação as teclas eu vou ter que fazer um hook do teclado. Infelizmente só sei fazer isso usando dll, não queria fazer com o uso de dll.Caso alguém saiba como faz sem o uso de dll, da uma mãosinha aí.--Abraços,Thiago.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.