欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows的服務(wù)功能初探介紹

  發(fā)布時(shí)間:2012-08-10 09:57:38   作者:佚名   我要評(píng)論
本文介紹了Windows的服務(wù)
在Windows中,對(duì)于一些不需要顯示圖形界面的應(yīng)用程序,我們可以把它做成Windows服務(wù),讓它在后臺(tái)運(yùn)行,例如一些文件監(jiān)視服務(wù)等。一臺(tái)電腦中的Windows服務(wù)可以在“計(jì)算機(jī)-管理-服務(wù)應(yīng)用程序-服務(wù)”中看到,如圖:

在這里,我們可以啟動(dòng)或停止一個(gè)服務(wù)。
創(chuàng)建服務(wù):
下面我們來(lái)創(chuàng)建一個(gè)文件監(jiān)視功能的Windows服務(wù)。
用VS新建一個(gè)項(xiàng)目,模版選擇“Windows服務(wù)”,在服務(wù)代碼中會(huì)有兩個(gè)方法:OnStart與OnStop,分別是服務(wù)的啟動(dòng)時(shí)的執(zhí)行代碼與服務(wù)停止時(shí)的執(zhí)行代碼。
public partial class WatchService : ServiceBase
    {
        public WatchService()
        {
            InitializeComponent();
        }
        FileSystemWatcher watcher;
        /// <summary>
        /// 服務(wù)開(kāi)始時(shí)執(zhí)行代碼
        /// </summary>
        /// <param name="args"></param>
        protected override void OnStart(string[] args)
        {   
            WriteLog("服務(wù)開(kāi)始");
            string path = @"D:\text";
            watcher = new FileSystemWatcher(path);
            // 監(jiān)視新增文件
            watcher.NotifyFilter = NotifyFilters.FileName;
            //同時(shí)監(jiān)視子目錄
            watcher.IncludeSubdirectories = true;
            watcher.Created += new FileSystemEventHandler(watcher_Changed);
            watcher.EnableRaisingEvents = true;
        }
        /// <summary>
        /// 服務(wù)停止時(shí)執(zhí)行代碼
        /// </summary>
        protected override void OnStop()
        {
            WriteLog("服務(wù)停止");
        }
        private void watcher_Changed(object sender, FileSystemEventArgs e)
        {
            try
            {
                WriteLog(e.Name + " " + e.ChangeType);
            }
            catch (Exception ex)
            {
                WriteLog(ex.ToString());
            }
        }   
        /// <summary>
        /// 寫日志的方法
        /// </summary>
        /// <param name="msg"></param>
        private void WriteLog(string msg)
        {
            string path = @"D:\log.txt";
            using (StreamWriter sw = new StreamWriter(path, true))
            {
                sw.WriteLine(DateTime.Now.ToString() + " " + msg);
            }
        }
    }
 發(fā)布服務(wù):
轉(zhuǎn)到服務(wù)的界面窗體,點(diǎn)擊右鍵,選擇添加安裝程序,會(huì)出現(xiàn)一個(gè)ProjectInstaller.cs。在其界面窗體中,選擇serviceInstaller1,右鍵屬性,可以設(shè)置服務(wù)啟動(dòng)方式,服務(wù)名稱(服務(wù)名稱不能與其它Windows服務(wù)名稱重名),服務(wù)描述,服務(wù)顯示名稱等,如圖:

  另一個(gè)serviceProcessInstaller1的屬性可以設(shè)置服務(wù)的運(yùn)行賬戶,如圖:    

  完成這些設(shè)置后,重新生成服務(wù),打開(kāi)VS2010命令行工具,以管理員身份運(yùn)行,輸入命令I(lǐng)nstallUtil.exe+服務(wù)程序地址,如InstallUtil.exe “D:\Service\FileWatchDemo.exe” 提示安裝完成后,就可以在服務(wù)管理中看到剛剛安裝的服務(wù)了。刪除服務(wù): InstallUtil.exe /u +"服務(wù)地址" InstallUtil.exe /u "D:\Service\FileWatchDemo.exe"   或 SC delete +服務(wù)名稱,如 sc delete FileWatchService     作者 Gyoung

相關(guān)文章

最新評(píng)論