精华内容
下载资源
问答
  • C# 程序关闭托盘图标不会自动消失 原文:C# 程序关闭托盘图标不会自动消失c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失必须将鼠标移到图标上面时才能消失?请问如何...
    原文:C# 程序关闭托盘图标不会自动消失

    c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失  必须将鼠标移到图标上面时才能消失?  请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束), windows系统好多程序都会这样。

    网上搜索后大家说法不一,如下:

    1、这个就这样,很多程序都有这个问题,大家都习惯了

    2、似乎没法解决。。任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。

    3、任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。

    4、只能习惯!

    5、退出时让 托盘 控件不可见..再退出.

    6、应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。。。直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。。

     

    最终结论:

    呵呵,这个问题刚开始也困拢了我半天,上网找了很多贴子都没有解决的方法,后来我自己试了一个它的方法,结果一测试完全好用:在程序的closed事件处理程序中调用NotifyIcon控件的Dispose()方法,这样程序退出后托盘上的图标立刻就消失了。
           private void Window_Closed(object sender, EventArgs e)
            {
                myNotifyIcon.Dispose();
            }

    posted on 2018-11-07 22:27 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9926219.html

    展开全文
  • 最小化到托盘 关闭时最小化到托盘…… 额……本人口才不太好 反正托盘的功能都有就是了……
  • 点击Outlook2016关闭按钮时,不关闭主程序仅最小化到右下角托盘中。office2016+win10环境亲测可用。
  • 托盘图标_实现方法_最小化到托盘_关闭托盘_delphi_托盘汇总 转自:http://midasyang.blog.163.com/blog/static/189744104201141245344681/ 启动不显示主窗体如果通过Form1.Visible:=False;语句来实现的话,...

    托盘图标_实现方法_最小化到托盘_关闭到托盘_delphi_托盘汇总  

    转自:http://midasyang.blog.163.com/blog/static/189744104201141245344681/

    启动不显示主窗体
    如果通过Form1.Visible:=False;语句来实现的话,会出现主窗体一闪而过的情形。更好的办法是在OnShow事件中添加Application.ShowMainForm := False;

    程序不出现在任务栏
    procedure TForm1.FormShow(Sender: TObject);
    begin
    ShowWindow(Application.Handle,SW_HIDE);
    end;

    点击关闭按钮至托盘
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    CanClose := False;
    Self.Hide;
    end;
    但这儿有个问题,在“开始”菜单中使用关闭或重启系统时,由于程序的存在,系统总是不能关闭或重启, 然后就返回到了桌面。解决方案如下:
    //声明拦截WM_QueryEndSession消息的过程
    procedure WMQueryEndSession(var Msg: TMessage); message WM_QueryEndSession;

    procedure TForm1.WMQueryEndSession(var Msg: TMessage);
    begin
    Msg.Result := 1;
    end;
    经测试,系统关机时不会执行OnClose事件,但会执行OnDestroy事件。另Raize托盘控件RzTrayIcon有QueryEndSession(Sender: TObject;
    var AllowSessionToEnd: Boolean);事件,把AllowSessionToEnd置为真亦可。

    最小化到托盘
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

    procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
    begin
    if Msg.CmdType = SC_MINIMIZE then
    Self.Close
    else
    inherited;
    end;


    最大化和最小化时的动画
    Type
    TZoomAction = (zaMinimize, zaMaximize);

    procedure ZoomEffect(AForm: TForm; AOperation: TZoomAction);
    var
    rcStart, rcEnd, rcTray: TRect;
    hwndTray, hwndChild: hWnd;
    begin
    // 寻找系统托盘区的位置
    hwndTray := FindWindow('Shell_TrayWnd', nil);
    hwndChild := FindWindowEx(hwndTray, 0, 'TrayNotifyWnd', nil);
    GetWindowRect(hwndChild, rcTray);
    //点击用于最大化/最小化,并切换起始/结束
    if AOperation = zaMinimize then
    begin
    rcStart := AForm.BoundsRect;
    rcEnd := rcTray;
    end
    else begin
    rcEnd := AForm.BoundsRect;
    rcStart := rcTray;
    end;
    DrawAnimatedRects(AForm.Handle, IDANI_CAPTION, rcStart, rcEnd);
    end;
    再分别在OnCloseQuery中添加
    ZoomEffect(Self, zaMinimize);
    在OnShow中添加
    ZoomEffect(Self, zaMaximize);

    左击托盘显示或者隐藏
    在托盘的左击事件中添加
    if Self.Showing then
    Self.Close
    else begin
    Self.Show;
    SetForegroundWindow(Application.Handle);
    end

    窗体是否处于激活状态
    procedure WM_ACTIVATEAPP( var Message:TWMACTIVATEAPP); message WM_ACTIVATEAPP;

    procedure TForm1.WMACTIVATEAPP(var message: TWMACTIVATEAPP);
    begin
    //是否处于激活窗体状态Message.Active
    end;

    窗体是否最小化状态
    if IsIconic(Self.Handle) then 
    ShowWindow(Self.Handle, SW_RESTORE);

    程序总是显示在最上面
    简单的办法是Self.FormStyle := fsStayOnTop;但会出现闪烁,比较好的办法如下
    if not ShowOnTop then
    SetWindowPos(Self.Handle , HWND_NOTOPMOST, 0,0,0,0, SWP_NOMOVE + SWP_NOSIZE) //普通窗口
    else
    SetWindowPos(Self.Handle, HWND_TOPMOST, 0,0, 0,0, SWP_NOMOVE + SWP_NOSIZE); //最上面
     
     
    http://shuwen186.blog.163.com/blog/static/1642732020112973721371/

    转载于:https://www.cnblogs.com/aiqingjialebi/p/4463590.html

    展开全文
  • 1、 新建一个工程,在窗体上,放上CnTrayIcon 和PopupMenu2、设置CnTrayIcon 属性:Active :trueAutoHide :flaseEnabled:TrueHint:’实现托盘功能’Name: CnTrayIcon1PopupMenu: PopupMenu1UesApplcon:True3、单击...

    1、 新建一个工程,在窗体上,放上CnTrayIcon 和PopupMenu

    2、设置CnTrayIcon 属性:

    Active :true

    AutoHide :flase

    Enabled:True

    Hint:’实现托盘功能’

    Name: CnTrayIcon1

    PopupMenu: PopupMenu1

    UesApplcon:True

    3、单击系统托盘的代码:

    procedure TForm1.CnTrayIcon1Click(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    begin

    Show; // 显示主窗体

    WindowState := TWindowState(tag);

    SetForegroundWindow(Handle);

    end;

    4、拦截关闭按钮的代码:

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    begin

    Tag := Ord(WindowState);

    WindowState := wsMinimized;

    Hide; // 去除任务栏上的标题

    CanClose := False; // 停止关闭窗体 ,没有这句就直接关闭窗体了

    end;

    全部代码见附件

    展开全文
  • 文章目录1 功能描述2 实现2.1 最小化到托盘功能实现2.1.1 变量声明与函数声明2.1.2 函数实现2.2 最小化到托盘功能调用2.2.1 在DuiLib虚函数HandleMessage中添加对托盘图标响应消息WM_TO_TRAY的处理2.2.2 在点击关闭...
  • 打开和关闭CD托盘

    2020-05-19 17:10:52
    大家好, 这是用于打开和关闭CD TRAY的简单方法。 请发表评论! 'addthislinesofcodeinthedeclarationsectionofastandardmodule. '--------------- DeclareFunctionmciSendStringLib"winmm.dll"Alias"mciSendStringA...
  • Electron系统托盘 托盘右键菜单、托盘图标闪烁 点击右上角关闭按钮隐藏到托盘(仿杀毒软件任务栏托盘)目录 1、 Electron系统托盘、任务通知栏图标介绍。 2、 Electron 创建任务栏图标以及任务栏图标右键菜单 3、 ...
  • PyQt5创建托盘 使用到的包 QtWidgets.Qwidget、QtWidgets.QsystemTrayIcon、QtWidgets.QMenu QtGui.Qicon、QtGui.QColor、QtGui.QPixmap sys 步骤 创建PyQt基本套路 创建QSystemTrayIcon托盘对象 创建QIcon对象,...
  • 关闭hp打印机 cd 大家好, 这是用于打开和关闭CD TRAY的简单方法。 请发表评论! 'addthislinesofcodeinthedeclarationsectionofastandardmodule. '--------------- DeclareFunctionmciSendStringLib"winmm....
  • Qt paint的简单使用和系统托盘的一些简单使用,实现了任务栏关闭程序隐藏程序,只有在系统托盘关闭程序,才能真正的关闭程序
  • 1.系统托盘 2.从一个进程中启动关闭另一新进程
  • 易语言源码点关闭按钮最小化到托盘.rar 易语言源码点关闭按钮最小化到托盘.rar 易语言源码点关闭按钮最小化到托盘.rar 易语言源码点关闭按钮最小化到托盘.rar 易语言源码点关闭按钮最小化到托盘.rar 易语言源码...
  • 运行即托盘,最小化到托盘,点击托盘图标到窗口前,关闭清除图标
  • 打开关闭光驱的托盘操作 ...................
  • 易语言点关闭按钮最小化到托盘源码,点关闭按钮最小化到托盘,关机处理,CallWindowProcA,SetWindowLongA,创建线程,销毁线程,创建事件同步对象,SystemParametersInfoA,关闭句柄,打开事件同步对象,取得窗口信息_,设置...
  • goeject:在Golang上打开和关闭CDROM托盘的解决方案
  • winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行) ,实现webbrowser打开网页
  • 关闭按钮最小化到托盘,源码是易语言托盘的应用。
  • 我希望我的Electron.js应用程序驻留在系统托盘上,并且每当用户要执行某项操作时,他们都可以从系统托盘中进行还原,则可以执行某些操作并将其最小化/关闭回系统托盘。我怎么做?我已经tray从文档中看到了这一部分,...
  • VC 弹出和关闭光驱CDROM托盘盒,通过本程序打开电脑光驱的托盘盒,也就是完成出仓和进仓动作,只要是光盘驱动器都是可以的,另外程序还可设置热键、开机启动或最小化到托盘的功能,程序的实现使用了classXP.dll控件...
  • 3.点击关闭按钮,程序从任务栏消失,只有系统托盘 4.无论在何时,鼠标左键单击托盘图标,窗口重新显现 5.系统托盘上鼠标右键,退出程序 框架已经提供,包含很多知识点:是否在任务栏显示,判断鼠标左右键,关闭窗体对应的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,561
精华内容 624
关键字:

关闭托盘