亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#開發Windows服務實例之實現禁止QQ運行

2020-01-24 03:07:32
字體:
來源:轉載
供稿:網友

本實例主要實現下面三個基本功能

1、C#開發windows服務

2、禁止QQ等程序運行

3、為windows服務創建自動安裝程序

下面針對這三個基本功能進行實現

一、C#開發windows服務

Windows服務在VS以前的版本中叫NT服務,在VS.NET啟用了新的名稱。用C#創建windows服務不是一件困難的事,下頁針對服務創建、啟動、停止做詳細介紹

1、首先在vs中添加一winform程序KillService

2、在解決方案添加新項中添加Windows服務

3、打開服務頁面,切換至代碼頁面有兩個方法如下:

復制代碼 代碼如下:

protected override void OnStart(string[] args)
{
   // TODO: 在此處添加代碼以啟動服務。
}
protected override void OnStop()
{
// TODO: 在此處添加代碼以執行停止服務所需的關閉操作。
}

當服務啟動之后一般會要求每隔幾秒或者幾分鐘刷新一次數據,所以要用到一個定時器,在定時器里邊進行業務操作。windows服務不能直接在VS下進行調試,所以可以選擇使用日志形式記錄服務的各種啟動停止或者異常的狀態。具體實現代碼如下:

復制代碼 代碼如下:

partial class Service1 : ServiceBase
    {
        static System.Timers.Timer oTimer_Get = new System.Timers.Timer();
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            // TODO: 在此處添加代碼以啟動服務。
            AutoLog = false;
            FileLog.Success("服務已啟動");
            oTimer_Get.Enabled = true;
            oTimer_Get.Interval = 10000;
            oTimer_Get.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
        }
        private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e)
        {
            FileLog.Success("開始發送");
            oTimer_Get.Enabled = false;
            try
            {
                //此處可進行編寫詳細的業務操作
            }
            catch (Exception ex)
            {
                FileLog.Error(ex.Source + "。" + ex.Message);
            }
            oTimer_Get.Enabled = true;
            FileLog.Success("結束發送");
        }
        protected override void OnStop()
        {
            // TODO: 在此處添加代碼以執行停止服務所需的關閉操作。
            FileLog.Success("服務已停止");
            oTimer_Get.Enabled = false;
        }
    }

文件記錄類代碼

復制代碼 代碼如下:

/// <summary>
    /// 文件型日志記錄
    /// </summary>
    public static class FileLog
    {
        private static string sFilePath = System.Configuration.ConfigurationSettings.AppSettings["UserLog"];
        /// <summary>
        /// 錯誤日志
        /// </summary>
        /// <param name="Message">錯誤內容</param>
        public static void Error(string Message)
        {
            try
            {
                if (!Directory.Exists(sFilePath))
                {
                    Directory.CreateDirectory(sFilePath);
                }
                string sFileName = sFilePath + "http://" + string.Format("{0}-Error.txt", DateTime.Now.ToString("yyyy-MM-dd"));
                string sContent = string.Format("{0}-- {1}/r/n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Message);
                FileStream fs = new FileStream(sFileName, FileMode.Append);
                Byte[] b = Encoding.Default.GetBytes(sContent);
                fs.Write(b, 0, b.Length);
                fs.Close();
            }
            catch { }
        }
        /// <summary>
        /// 正確日志
        /// </summary>
        /// <param name="Message">正確內容</param>
        public static void Success(string Message)
        {
            try
            {
                if (!Directory.Exists(sFilePath))
                {
                    Directory.CreateDirectory(sFilePath);
                }
                string sFileName = sFilePath + "http://" + string.Format("{0}-Success.txt", DateTime.Now.ToString("yyyy-MM-dd"));
                string sContent = string.Format("{0}-- {1}/r/n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Message);
                FileStream fs = new FileStream(sFileName, FileMode.Append);
                Byte[] b = Encoding.Default.GetBytes(sContent);
                fs.Write(b, 0, b.Length);
                fs.Close();
            }
            catch { }
        }
    }

4、服務需要一個啟動入口,打開program.cs文件在main函數里邊編寫入口代碼如下:

復制代碼 代碼如下:

static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] {
              new Service1()
            };
            ServiceBase.Run(ServicesToRun);
        }
    }

到此windows服務編寫完成,但是現在該服務沒有什么的業務操作功能。接下來實現禁止本機QQ程序運行功能

二、禁止QQ等程序運行

只需獲取本機所有運行的進行,通過Process.kill()方法結束該進程即可

復制代碼 代碼如下:

Process[] process = Process.GetProcesses();
                for (int i = 0; i < process.Length; i++)
                {
                    if (process[i].ProcessName == "QQ")
                    {
                        process[i].Kill();
                    }
                }

將該操作放至windows服務中的業務操作模塊即可。

三、為windows服務創建自動安裝程序

上面實現了windows服務基本的業務操作功能,下面為該windows服務創建自動安裝程序,

1、切換至service.cs設計頁面,右鍵選擇添加安裝程序

2、這時項目中就添加了一個新類 ProjectInstaller 和兩個安裝組件 ServiceProcessInstaller 和 ServiceInstaller,并且服務的屬性值被復制到組件。

3、若要確定如何啟動服務,請右鍵 ServiceInstaller1屬性并將 StartType 屬性設置為適當的值。

Manual      服務安裝后,必須手動啟動。Automatic    每次計算機重新啟動時,服務都會自動啟動。Disabled     服務無法啟動。

4、將serviceProcessInstaller類的Account屬性改為 LocalSystem這樣,不論是以哪個用戶登錄的系統,服務總會啟動。

這些windows服務的安裝程序已經完成。通過從生成菜單中選擇生成來生成項目。

注意   不要通過按 F5 鍵來運行項目――不能以這種方式運行服務項目。

5、創建啟動和停止文件

安裝文件Install.bat實現如下:

cd %SystemRoot%/Microsoft.NET/Framework/v4.0.30319/installutil.exe KillService.exe

Net Start 自動查殺服務
sc config 自動查殺服務 start= auto 

KillService.exe是你生成的可執行文件的路徑

自動查殺服務是windows服務的名稱

停止文件Uninstall.bat文件的實現如下:

%SystemRoot%/Microsoft.NET/Framework/v4.0.30319/installutil.exe /u KillService.exe

KillService.exe是你生成的可執行文件的路徑

PS:當這兩個文件保存成功之后,執行時一定要“以管理員身份運行”,否則服務啟動出錯

如果服務安裝成功,可以在資源管理器中的服務查看到正在運行的自動查殺服務。

至此整個實例基本完成

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品啪在线观看麻豆免费| 亚洲一级片在线看| 亚洲性夜色噜噜噜7777| 川上优av一区二区线观看| 国产欧美精品日韩精品| 国产午夜精品全部视频播放| 日本精品视频网站| 国产欧美精品一区二区三区-老狼| 国产精品视频yy9099| 国产精品久久久久一区二区| 欧美亚洲成人精品| 久久久久久成人精品| 97国产一区二区精品久久呦| 欧美做爰性生交视频| 中文字幕精品视频| 中文字幕久久亚洲| 国产精品精品国产| 亚洲va久久久噜噜噜久久天堂| 欧美亚洲第一区| 国产午夜精品麻豆| 日韩欧美综合在线视频| 亚洲影院色无极综合| 色琪琪综合男人的天堂aⅴ视频| 国产精品1区2区在线观看| 日韩精品在线视频| 国产成人精品一区| 国产精品久久久久免费a∨| 亚洲图片制服诱惑| 久久久人成影片一区二区三区| 精品露脸国产偷人在视频| 欧美另类xxx| 91久久精品国产91久久| 亚洲无线码在线一区观看| 4k岛国日韩精品**专区| 国产亚洲aⅴaaaaaa毛片| 亚洲成**性毛茸茸| 久久久91精品| 欧美激情国内偷拍| 色哟哟网站入口亚洲精品| 中文在线资源观看视频网站免费不卡| 美女黄色丝袜一区| 亚洲美女免费精品视频在线观看| 国内揄拍国内精品| 亚洲aⅴ日韩av电影在线观看| 欧美猛交免费看| 欧美日韩ab片| 亚洲欧美日韩成人| 久久久成人精品| 亚洲午夜久久久久久久| 伊人久久综合97精品| 欧美成年人视频网站| 国产精品日日摸夜夜添夜夜av| 久久久久久久亚洲精品| 91精品视频免费| xvideos成人免费中文版| 国产成人97精品免费看片| 欧美在线视频免费播放| 欧美猛交ⅹxxx乱大交视频| 国产精国产精品| 另类专区欧美制服同性| 日韩av一区在线| 日韩成人av在线播放| 98视频在线噜噜噜国产| 亚洲欧美综合图区| 亚洲精品一区中文字幕乱码| 久久精彩免费视频| 国产欧美精品一区二区三区介绍| 精品偷拍各种wc美女嘘嘘| 亚洲码在线观看| 欧美性xxxx| 国产精品入口尤物| 日韩成人中文字幕在线观看| 国产97在线|亚洲| 91啪国产在线| 亚洲人成电影网站色| 欧美日本精品在线| 欧美国产激情18| xxav国产精品美女主播| 国产日韩精品一区二区| 久久久久久久一区二区| 精品自拍视频在线观看| 国内久久久精品| 久久影视电视剧免费网站清宫辞电视| 欧美大人香蕉在线| 国产精品福利久久久| 国产日韩欧美中文在线播放| 亚洲成av人乱码色午夜| 亚洲午夜精品久久久久久性色| 亚洲乱码一区二区| 亚洲精品久久久久久下一站| 81精品国产乱码久久久久久| 欧美黄色片免费观看| 久久久精品一区二区三区| 欧美日韩激情视频8区| 中文字幕亚洲第一| 欧美性视频在线| 欧美午夜xxx| 久久久免费精品| 午夜剧场成人观在线视频免费观看| 欧美大片免费观看在线观看网站推荐| 亚洲欧洲在线免费| 成人久久一区二区| 欧美xxxx做受欧美.88| 国产精品第三页| 欧美电影免费观看电视剧大全| 欧美亚洲日本黄色| 亚洲美腿欧美激情另类| www亚洲精品| 欧美一级视频免费在线观看| 久久久国产精彩视频美女艺术照福利| 国产中文字幕日韩| 在线日韩精品视频| 色综合久久中文字幕综合网小说| 亚洲第一福利在线观看| 日韩中文在线中文网在线观看| 欧美成人性色生活仑片| 久久久久久久久久久久av| 亚洲高清久久网| 欧美激情国产高清| 亚洲人成自拍网站| 国产精品亚洲激情| 精品国产老师黑色丝袜高跟鞋| 国产精品久久久久9999| 精品一区二区三区四区| 亚洲国产天堂网精品网站| 亚洲精品久久久一区二区三区| 国产欧美va欧美va香蕉在线| 亚洲999一在线观看www| 91系列在线播放| 亚洲视频欧洲视频| 日韩午夜在线视频| 国产午夜精品免费一区二区三区| 欧美xxxx做受欧美| 国产日韩在线免费| 成人免费观看49www在线观看| 久久亚洲精品一区二区| 国产99视频在线观看| 日韩中文字幕在线播放| 亚洲男子天堂网| 欧美—级高清免费播放| 亚洲男人av电影| 亚洲黄页网在线观看| 中文字幕在线看视频国产欧美在线看完整| 一区二区三区 在线观看视| 久久伊人免费视频| 欧美一级电影久久| 91精品国产一区| 精品人伦一区二区三区蜜桃免费| 久久久噜噜噜久噜久久| 欧美日韩国产一区二区三区| 日韩av大片免费看| 欧美成人免费在线观看| 国产亚洲欧洲高清| 日韩av免费在线播放| 日产日韩在线亚洲欧美| 69久久夜色精品国产69乱青草| 欧美精品亚州精品| 中文字幕久精品免费视频| 国产精品羞羞答答| 91色琪琪电影亚洲精品久久| 日韩高清免费在线| 亚洲欧美日韩中文在线制服| 91av视频在线播放| 国产精品视频午夜|