c# 程序最小化到系统托盘

   用过千千静听的都知道该软件能够最小化到右下角的系统托盘中。最近我做了个小工具,也要实现类似功能。就是当点击某个按钮或者是快捷键的时候,程序最小化到系统托盘,再次使用快捷键该程序还原。
   首先是解决如何最小化到系统托盘并恢复的问题:
   办法是使用NotifyIcon控件,该控件就是最小化后看到的那个按钮,主要是配置个漂亮的图标:)。程序中加入如下代码:
   
 1        void MinimizedToNormal()
 2        {
 3            this.Visible = true;
 4            this.WindowState = FormWindowState.Normal;
 5            notifyIcon1.Visible = false;
 6
 7        }

 8        void NormalToMinimized()
 9        {
10            this.WindowState = FormWindowState.Minimized;
11            this.Visible = false;
12            this.notifyIcon1.Visible = true;
13        }
NormalToMinimized()是把当前窗体隐藏,并显示托盘通知按钮(这个按钮初始是隐藏的)。
MinimizedToNormal()是重新显示窗体,并把托盘通知按钮隐藏。

   下面解决如何通过快捷键控制最小化到系统托盘和恢复的问题,办法是调用windows api 
   RegisterHotkey()
   UnregisterHotKey()这组api。
   前一个注册一个系统快捷键,当点击该快捷键的时候可以调用NormalToMinimized()和MinimizedToNormal()进行最小化和恢复工作。
   也可以直接用下面这个压缩包中的两个文件,包含在工程中,这个是老外写的系统快捷键控件。非常方便:)
   /Files/dxfcv222/SystemHotkey.rar
   代码如下:
 
 1        void systemHotkey1_Pressed(object sender, EventArgs e)
 2        {
 3            if (this.notifyIcon1.Visible)
 4            {
 5                MinimizedToNormal();
 6            }

 7            else
 8            {
 9                NormalToMinimized();
10            }

11        }

posted on 2006-10-28 15:00  小峰  阅读(3994)  评论(1)    收藏  举报

导航