程序的功能集中在托盘图标上,开机自启动,有时候会出现无法创建托盘图标的问题(貌似跟系统有一定的关系),不知该如何解决。
1.如果trayicon的visibale属性直接定为true,无法创建托盘图标时会报错退出;
2.如果在formcreate中修改trayicon的visibale属性为true,无法创建托盘图标时会报错,无图标,但程序后台运行。请各位赐教,该如何解决该问题。

解决方案 »

  1.   

    看楼主这是用的拖盘控件吧,其实拖盘就几句代码的事,可以自己写。
    //建立拖盘
      with FTrayIcon do
      begin
        cbSize := sizeof(TNotifyIconData);
        Wnd := Handle;
        uID := 1;
        uFlags := NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
        uCallbackMessage := WM_TrayIcon;
        hIcon := Application.Icon.Handle;
        StrCopy(szTip,PChar(Application.Title));
      end;
      Shell_NotifyIcon(NIM_ADD,@FTrayIcon);
      ShowWindow(Application.Handle,SW_Hide);
    //显示拖盘
    Shell_NotifyIcon(NIM_DELETE,@FTrayIcon);
    ShowWindow(Application.Handle,SW_SHOW);
    //拖盘消息
    procedure WMTrayIcon(var AMsg: TMessage);
    var
      Pt: TPoint;
    begin
      if AMsg.LParam = WM_LBUTTONDOWN then
      begin
      //
      end
      else if AMsg.LParam = WM_RBUTTONDOWN then
      begin
      //
      end;
    end;
      

  2.   

    肯定是你代码的问题哦 为啥不用 raize  RzTrayIcon1  ?