(WinForm)文件夹状态监控,最小化到托盘,开机自启动

原文 (WinForm)文件夹状态监控,最小化到托盘,开机自启动

1.            文件夾監控(監測文件夾中的文件動態):

    //MSDN上的例子
    public class       Watcher

    {

        public static       void       Main()

        {

            Run();

        }

        [PermissionSet(SecurityAction.Demand,       Name = "FullTrust")]

        public static       void       Run()

        {

            string[] args =       System.Environment.GetCommandLineArgs();

            //       If a directory is not specified, exit program.

            if (args.Length != 2)

            {

                //       Display the proper way to call the program.

                Console.WriteLine(“Usage:       Watcher.exe (directory)“);

                return;

            }

            //       Create a new FileSystemWatcher and set its properties.

            FileSystemWatcher       watcher = new       FileSystemWatcher();

            watcher.Path       = args[1];

            /*       Watch for changes in LastAccess and LastWrite times, and       

                     the renaming of files or directories. */

            watcher.NotifyFilter       = NotifyFilters.LastAccess |       NotifyFilters.LastWrite

                     | NotifyFilters.FileName |       NotifyFilters.DirectoryName;

            //       Only watch text files.

            watcher.Filter       = “*.txt“;

            //       Add event handlers.

            watcher.Changed       += new       FileSystemEventHandler(OnChanged);

            watcher.Created       += new       FileSystemEventHandler(OnChanged);

            watcher.Deleted       += new       FileSystemEventHandler(OnChanged);

            watcher.Renamed       += new       RenamedEventHandler(OnRenamed);

            //       Begin watching.

            watcher.EnableRaisingEvents       = true;

            //       Wait for the user to quit the program.

            Console.WriteLine(“Press       \’q\’ to quit the sample.“);

            while (Console.Read() != ‘q‘)       ;

        }

        //       Define the event handlers.

        private static       void OnChanged(object       source, FileSystemEventArgs       e)

        {

            //       Specify what is done when a file is changed, created, or       deleted.

            Console.WriteLine(“File:        “ + e.FullPath + “ “       +       e.ChangeType);

        }

        private static       void OnRenamed(object       source, RenamedEventArgs       e)

        {

            //       Specify what is done when a file is renamed.

            Console.WriteLine(“File:       {0} renamed to {1}“,       e.OldFullPath,       e.FullPath);

        }

    }

  2.     最小化到托盤功能:
首先給主界面添加一個notifyIcon控件,給它的Icon添加一個圖標,不添加圖標的話不會在托盤顯示,然後給主界面的SizeChanged事件注冊一個方法,在方法中將主界面隱藏:

        void       frmMain_SizeChanged(object       sender, EventArgs       e)

        {

            if (this.WindowState       == FormWindowState.Minimized)       {

                this.Hide();

            }

        }

然後給notifyIcon的單擊或者雙擊事件添加一個方法,讓鼠標單擊或者雙擊托盤圖標的時候可以將主界面窗口還原:

        private       void       notifyIcon_MouseDoubleClick(object sender, MouseEventArgs       e)

        {

            this.Visible = true;

            this.WindowState =       FormWindowState.Normal;

        }

3.讓程序開機自動啟動的方法(編輯注冊表)

        private       void       chbStartup_CheckedChanged(object sender, EventArgs       e)

        {

            if (this.chbStartup.Checked)

            {

                try

                {

                    string startupPath =       Application.ExecutablePath;

                    RegistryKey       local =       Registry.LocalMachine;

                    RegistryKey       run = local.CreateSubKey(@”SOFTWARE\Microsoft\Windows\CurrentVersion\Run“);

                    run.SetValue(“FolderWatcher“,       startupPath);

                    local.Close();

                }

                catch (Exception       ex)

                {

                    MessageBox.Show(“開機啟動設置異常:“ +        ex.Message);

                }

            }

            else       {

                try

                {

                    string startupPath =       Application.ExecutablePath;

                    RegistryKey       local =       Registry.LocalMachine;

                    RegistryKey       run = local.CreateSubKey(@”SOFTWARE\Microsoft\Windows\CurrentVersion\Run“);

                    run.DeleteValue(“FolderWatcher“);

                    local.Close();

                }

                catch (Exception       ex)

                {

                    MessageBox.Show(“開機啟動設置異常:“ +        ex.Message);

                }

            }

        }

 

时间: 2024-10-24 17:12:17

(WinForm)文件夹状态监控,最小化到托盘,开机自启动的相关文章

关于在MFC中将窗口最小化到托盘实现原理及操作步骤_C 语言

步骤/方法 (一) 原理 1.最小化的原理:首先要将窗口隐藏,然后在右下角绘制图标. 2.恢复的原理:将窗口显示,再将托盘中的图片删除. (二)程序实现 1.自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1) 2.在MFC的 ::OnSysCommand(UINT nID, LPARAM lParam) 函数体中增加一个命令响应 if(nID==SC_MINIMIZE) ToTray(); //最小化到托盘的函数 3.在消息映射中添加 ON_ME

CentOS-6.4-x86_64-minimal 最小化安装之后开机服务的配置建议

CentOS-6.4-x86_64-minimal 最小化安装之后开机服务的配置建议 Server                                                                                          LevelStatus                                           Description                                              

用拷贝钩子实现对文件夹的监控

ICopyHook是一个用于创建拷贝钩子处理程序COM接口,它决定一个文件夹或者打印机对象是否可以被移动,拷贝,重命名或删除.Shell在执行这些操作之前,会调用ICopyHook接口的CopyCallback方法对它们进行验证.CopyCallback返回一个int值指示Shell是否应该继续执行这个操作.返回值IDYES表示继续,而返回值IDNO和IDCANCEL则表示终止. 一个文件夹对象可以安装多个拷贝钩子处理程序.如果出现这种情况,Shell会依次调用每个处理程序.只有当每个处理程序都

C# winform程序怎样将程序最小化到系统托盘?

这样最简单! 1.在form中添加一个NotifyIcon控件 2.把icon.ico这个图标放在/bin/Debug目录下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MinimizeForm

【转】c#最小化到托盘

下面是实现当点击最小化按钮时,程序缩到系统托盘中,双击系统托盘图标时,还原程序. 1.建个WinForm项目,其它操作略过.2.拉个NotifyIcon控件,将属性Visable设置成False,在Icon属性上选择一个图标文件. 3.实现Form的SizeChanged事件,代码如下: if(this.WindowState == FormWindowState.Minimized) //判断是否最小化{ this.ShowInTaskbar = false; //不显示在系统任务栏 noti

窗口最小化到托盘

使用notifyIcon控件和contextMenuStrip控件实现 1.将notifyIcon控件和contextMenuStrip控件拖到form上 2.在FORM的FormClosing事件 // 取消关闭窗体 e.Cancel = true; // 将窗体变为最小化 this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; //不显示在系统任务栏 notifyIcon1.Visible = tru

wxpython 最小化到托盘与欢迎图片的实现方法_python

一直在学习系统托盘的实现,于是自己写了一个简单的系统托盘实例,右键包括演示.最大化.最小化.退出和关于.在python2.6下测试通过. 注意,本节分享的python实例代码,这里是托盘上的图标弹出菜单是覆盖了CreatePopupMenu. 也可以绑定2个方法,一个wx.EVT_TASKBAR_RIGHT_DOWN,方法里面生成menu,然后再来一个wx.EVT_MENU,定义要处理的事件函数. 还有一个就是Wx窗体上的最小化按钮,触发的事件是 wx.EVT_ICONIZE,而根本就没有定义什

c#中程序最小化到托盘

拖一个 notifyIcon控件到界面,名为 notifyIcon1           //窗体对应的事件         #region Form1_SizeChanged         private void Form1_SizeChanged(object sender, EventArgs e)         {             if (this.WindowState == FormWindowState.Minimized) //判断是否最小化            

C#怎样才能实现窗体最小化到托盘呢?_C#教程

private void Form1_Resize(object sender, System.EventArgs e) {     if (this.WindowState == FormWindowState.Minimized) {         this.Visible = false;         this.notifyIcon1.Visible = true;     } } private void notifyIcon1_Click(object sender, Syste