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

原文 (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);

                }

            }

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

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

上一篇:在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持


下一篇:WindowsPhone8中实现圆形图片的生成显示