• Shellapi 托盘程序完整版本


    //托盘程序完整版本 
    {
    需要控件
    ImageList1
    PopupMenu1

    其他:2个Icon图标
    }

    uses Shellapi;{引入Shellapi}

    {在Interface的uses下面定义}
    Const                 
      My_IconEvent = WM_USER + 1000;

      private
       { Private declarations }
        myIcon:TNotifyIcondata;
        NormalIcon,DisableIcon:Ticon;
        procedure IconOnClick(Var msg:TMessage);
        Message My_IconEvent;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      NormalIcon:=TIcon.Create; {创建NormalIcon图标}
      DisableIcon:=TIcon.Create ; {创建DisableIcon图标}
      ImageList1.GetIcon(0,NormalIcon); {创建图标1}
      ImageList1.GetIcon(1,DisableIcon); {创建图标2}
      myIcon.cbSize:=Sizeof(TNotifyIcondata);
      myIcon.wnd:=handle;
      myIcon.uID:=1;
      myIcon.uFlags:=nif_Message or nif_tip or nif_Icon;
      myIcon.uCallbackMessage:=My_IconEvent;
      myIcon.Sztip:='鼠标放在图标上的提示信息'; {鼠标放在图标上 的 提示信息}
      myIcon.hIcon:=NormalIcon.handle; {这具是默认图标显示}
      Shell_NotifyIcon(nim_add,@myIcon); {这具是默认图标显示}
    end;

    procedure TForm1.IconOnClick(Var msg:TMessage);
    Var
      Mousepos:Tpoint;
    begin
       Case Msg.LParam of
         wm_Lbuttonup: begin {左键单击图标显示主窗体}
                            ShowWindow(Self.Handle,SW_SHOW);{窗体的显示位置会出现一些问题}
                          end;
         wm_Rbuttonup: begin {右键单击图标显示参数菜单}
                            GetCursorpos(Mousepos);
                            PopupMenu1.Popup(Mousepos.X,Mousepos.Y);
                          end;
        end;
    end;

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if (Application.MessageBox('确定要退出该监测系统吗?','警示',MB_YESNO or MB_ICONINFORMATION)= IDYES) then
          begin
             Shell_NotifyIcon(nim_delete,@myIcon); {程序退出时会迅速释放图标}
             NormalIcon.Free;
             DisableIcon.Free;
             CanClose:=True;
          end
          else CanClose:=False;
    end;

    procedure TForm1.N1Click(Sender: TObject);
    begin
         ShowWindow(Self.Handle,SW_SHOW);
    end;

    procedure TForm1.N21Click(Sender: TObject);
    begin
      myIcon.hIcon:=NormalIcon.handle;{DisableIcon图标显示}
      Shell_NotifyIcon(nim_modify,@myIcon);
    end;

    procedure TForm1.N2Click(Sender: TObject);
    begin
       myIcon.hIcon:=DisableIcon.handle; {NormalIcon图标显示}
       Shell_NotifyIcon(nim_modify,@myIcon);
    end;

    procedure TForm1.Exit1Click(Sender: TObject);
    begin
      Close;
    end;




  • 相关阅读:
    VBS发送邮件-1
    docker命令
    NLP | 自然语言处理
    windows: Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法
    Sense2vec with spaCy and Gensim
    python 去停用词
    nohup command > myout.file 2>&1 &
    NLTK vs SKLearn vs Gensim vs TextBlob vs spaCy
    Gensim进阶教程:训练word2vec与doc2vec模型
    Gensim入门教程
  • 原文地址:https://www.cnblogs.com/xe2011/p/2531610.html
Copyright © 2020-2023  润新知