国产精品福利自产拍在线观看,国产原创中文无码精品视频,岛国av无码精品一区二区三区,人人妻妻人人

使用C#創(chuàng)建Windows服務(使用chatgpt)

一、開發(fā)環(huán)境

操作系統(tǒng):Windows 10 X64

開發(fā)環(huán)境:VS2015

編程語言:C#

.NET版本:.NET Framework 4.0

目標平臺:X86

二、創(chuàng)建Windows Service

1、新建一個Windows Service,并將項目名稱改為“MyWindowsService”,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

2、在解決方案資源管理器內(nèi)將Service1.cs改為MyService1.cs后并點擊“查看代碼”圖標按鈕進入代碼編輯器界面,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

3、在代碼編輯器內(nèi)輸入以下代碼,如下所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

using System;using System.ServiceProcess;using System.IO;namespace MyWindowsService{ public partial class MyService : ServiceBase { public MyService() { InitializeComponent(); } string filePath = @"D:MyServiceLog.txt"; protected overrIDE void OnStart(string[] args) { using (FileStream stream = new FileStream(filePath,FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now},服務啟動!"); } } protected override void OnStop() { using (FileStream stream = new FileStream(filePath, FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now},服務停止!"); } } }}

使用C#創(chuàng)建Windows服務(使用chatgpt)

4、雙擊項目“MyWindowsService”進入“MyService”設(shè)計界面,在空白位置右擊鼠標彈出上下文菜單,選中“添加安裝程序”,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

5、此時軟件會生成兩個組件,分別為“serviceInstaller1”及“serviceProcessInstaller1”,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

6、點擊“serviceInstaller1”,在“屬性”窗體將ServiceName改為MyService,Description改為我的服務,StartType保持為Manual,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)使用C#創(chuàng)建Windows服務(使用chatgpt)使用C#創(chuàng)建Windows服務(使用chatgpt)

7、點擊“serviceProcessInstaller1”,在“屬性”窗體將Account改為LocalSystem(服務屬性系統(tǒng)級別),如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

8、鼠標右鍵點擊項目“MyWindowsService”,在彈出的上下文菜單中選擇“生成”按鈕,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

9、至此,Windows服務已經(jīng)創(chuàng)建完畢。

三、創(chuàng)建安裝、啟動、停止、卸載服務的Windows窗體

1、在同一個解決方案里新建一個Windows Form項目,并命名為WindowsServiceClient,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

2、將該項目設(shè)置為啟動項目,并在窗體內(nèi)添加四個按鈕,分別為安裝服務、啟動服務、停止服務及卸載服務,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

3、按下F7進入代碼編輯界面,引用“System.ServiceProcess”及“System.Configuration.Install”,并輸入如下代碼:

使用C#創(chuàng)建Windows服務(使用chatgpt)

using System;using System.Collections;using System.Windows.Forms;using System.ServiceProcess;using System.Configuration.Install;namespace WindowsServiceClient{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } string serviceFilePath = $"{Application.StartupPath}MyWindowsService.exe"; string serviceName = "MyService"; //事件:安裝服務 private void button1_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.UninstallService(serviceName); this.InstallService(serviceFilePath); } //事件:啟動服務 private void button2_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.ServiceStart(serviceName); } //事件:停止服務 private void button4_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.ServiceStop(serviceName); } //事件:卸載服務 private void button3_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) { this.ServiceStop(serviceName); this.UninstallService(serviceFilePath); } } //判斷服務是否存在 private bool IsServiceExisted(string serviceName) { ServiceController[] services = ServiceController.GetServices(); foreach (ServiceController sc in services) { if (sc.ServiceName.ToLower() == serviceName.ToLower()) { return true; } } return false; } //安裝服務 private void InstallService(string serviceFilePath) { using (AssemblyInstaller installer = new AssemblyInstaller()) { installer.UseNewContext = true; installer.Path = serviceFilePath; IDictionary savedState = new Hashtable(); installer.Install(savedState); installer.Commit(savedState); } } //卸載服務 private void UninstallService(string serviceFilePath) { using (AssemblyInstaller installer = new AssemblyInstaller()) { installer.UseNewContext = true; installer.Path = serviceFilePath; installer.Uninstall(null); } } //啟動服務 private void ServiceStart(string serviceName) { using (ServiceController control = new ServiceController(serviceName)) { if (control.Status == ServiceControllerStatus.Stopped) { control.Start(); } } } //停止服務 private void ServiceStop(string serviceName) { using (ServiceController control = new ServiceController(serviceName)) { if (control.Status == ServiceControllerStatus.Running) { control.Stop(); } } } }}

使用C#創(chuàng)建Windows服務(使用chatgpt)

4、為了后續(xù)調(diào)試服務及安裝卸載服務的需要,將已生成的MyWindowsService.exe引用到本W(wǎng)indows窗體,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

5、由于需要安裝服務,故需要使用UACAdministrator的權(quán)限,鼠標右擊項目“WindowsServiceClient”,在彈出的上下文菜單中選擇“添加”->“新建項”,在彈出的選擇窗體中選擇“應用程序清單文件”并單擊確定,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

6、打開該文件,并將<requestedExecutionLevel level="asInvoker" uiAccess="false" />改為<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

7、IDE啟動后,將會彈出如下所示的窗體(有的系統(tǒng)因UAC配置有可能不顯示),需要用管理員權(quán)限打開:

使用C#創(chuàng)建Windows服務(使用chatgpt)

8、重新打開后,在IDE運行WindowsServiceClient項目;

9、使用WIN R的方式打開運行窗體,并在窗體內(nèi)輸入services.msc后打開服務,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

10、點擊窗體內(nèi)的“安裝服務”按鈕,將會在服務中出現(xiàn)MyService,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

11、點擊“運行服務”按鈕,將啟動并運行服務,如下所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

12、點擊“停止服務”按鈕,將會停止運行服務,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

13、點擊“卸載服務”按鈕,將會從服務中刪除MyService服務。

14、以上啟動及停止服務將會寫入D:MyServiceLog.txt,內(nèi)容如下所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

源代碼下載:

http://pan.baidu.com/s/1kVza3Bp

補充:如何調(diào)試服務

1、要調(diào)試服務,其實很簡單,如需將服務附加進程到需要調(diào)試的項目里面即可,假如要調(diào)試剛才建的服務,現(xiàn)在OnStop事件里設(shè)置斷點,如下所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

2、啟動“WindowsServiceClient”項目,在“調(diào)試”菜單中選擇“附件到進程”(服務必須事先安裝),如下所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

3、找到“MyWindowsService.exe”,點擊“附加”按鈕,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

4、點擊“停止服務”按鈕,程序?qū)谠O(shè)置斷點的地方中斷,如下圖所示:

使用C#創(chuàng)建Windows服務(使用chatgpt)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年5月17日 下午1:41
下一篇 2023年5月17日 下午1:57

相關(guān)推薦

  • 科研項目實施計劃表模板

    科研項目實施計劃表模板 項目背景: 該項目旨在解決當前城市交通擁堵問題。通過設(shè)計新的交通管理系統(tǒng),可以更好地控制交通流量,減少交通事故,提高城市交通效率。 項目目標: 1. 設(shè)計一…

    科研百科 2025年2月2日
    1
  • 衛(wèi)生科研項目標準

    衛(wèi)生科研項目標準 隨著現(xiàn)代醫(yī)學的不斷發(fā)展,衛(wèi)生科研項目標準也在不斷更新和完善。以下是一些常見的衛(wèi)生科研項目標準,供您參考。 1. 項目目標 項目目標是指研究的主要目的和預期成果。在…

    科研百科 2025年1月31日
    1
  • 高途線上科研項目值得報嗎

    高途線上科研項目值得報嗎? 高途線上科研項目是一個值得報的選項。這些項目是由一些知名的在線教育平臺提供的,旨在為學生提供高質(zhì)量的學習體驗。這些項目通常由經(jīng)驗豐富的教師授課,并使用最…

    科研百科 2024年10月22日
    16
  • 云南網(wǎng)站建設(shè)制作公司-云南小程序制作開發(fā)-云南網(wǎng)絡推廣(云南網(wǎng)站制作推薦)

    云南網(wǎng)站建設(shè)制作公司-云南小程序制作開發(fā)-云南網(wǎng)絡推廣-譽網(wǎng)科技-15038317026-歡迎免費咨詢 【譽網(wǎng)科技】是專業(yè)從事網(wǎng)站建設(shè)及網(wǎng)絡推廣的服務商,為企業(yè)和個人提供網(wǎng)站建設(shè)、…

    科研百科 2023年4月10日
    269
  • 中科院肖帥簡介

    中科院肖帥簡介 肖帥,男,漢族,1974年11月出生于江西南昌,博士,中科院物理所研究員、副研究員。 2001年9月-2005年7月,清華大學,本科學習,獲得學士學位。 2005年…

    科研百科 2024年10月8日
    13
  • 為什么選擇輕量級播控系統(tǒng)?(為什么選擇輕量級播控系統(tǒng)呢)

    相比較于一些致力于渠道建設(shè)的企業(yè),市場上存在大量對于屏幕管理和內(nèi)容刊播需求較小的政企和商戶門店,復雜的信息發(fā)布系統(tǒng)顯然無論從建設(shè)成本或者維護成本上對于這些用戶都是非常不友好的,因為…

    科研百科 2023年4月14日
    259
  • 崗位公布!速戳報名→

    就業(yè)是最基本的民生。為深入學習貫徹黨的二十大報告中關(guān)于“強化就業(yè)優(yōu)先政策,健全就業(yè)促進機制,促進高質(zhì)量充分就業(yè)”的精神,團省委積極開展促進大學生就業(yè)行動,近期,面向全省各級青聯(lián)委員…

    科研百科 2024年8月7日
    1
  • 項目管理系統(tǒng)主要作用

    項目管理系統(tǒng)的主要作用 項目管理系統(tǒng)是一種用于管理和組織項目的工具,可以幫助項目經(jīng)理、項目團隊和公司實現(xiàn)更高效、更精準的項目管理。項目管理系統(tǒng)的主要作用包括: 1. 提高項目管理效…

    科研百科 2024年12月24日
    2
  • 項目管理中進度控制

    進度控制是項目管理中至關(guān)重要的一部分,它關(guān)系到項目的整體規(guī)劃和實現(xiàn)。在項目管理中,進度控制不僅能夠幫助項目經(jīng)理有效地管理項目進度,還可以確保項目在預算、時間和質(zhì)量方面的成功完成。本…

    科研百科 2024年7月15日
    18
  • 落實垂直管理部門黨建工作責任情況報告

    落實垂直管理部門黨建工作責任情況報告 近年來,隨著國家垂直管理部門數(shù)量的不斷增加,黨建工作已經(jīng)成為各級垂直管理部門的重要工作之一。然而,在垂直管理部門中,黨建工作的實際落實還存在著…

    科研百科 2024年11月16日
    11