最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#通過創(chuàng)建Windows服務啟動程序的方法詳解

 更新時間:2016年06月30日 10:02:41   作者:smartsmile2012  
這篇文章主要介紹了C#通過創(chuàng)建Windows服務啟動程序的方法,較為詳細的分析了C#創(chuàng)建Windows服務應用程序的步驟與相關注意事項,需要的朋友可以參考下

本文實例講述了C#通過創(chuàng)建Windows服務啟動程序的方法。分享給大家供大家參考,具體如下:

1. 新建一個Windows服務應用程序

創(chuàng)建項目——》Visual C# 左側的"+"——》Windows ——》Windows 服務(右側模板)——》輸入名稱,確定創(chuàng)建項目

2. 設置Windows服務的屬性(Windows服務里沒有窗體,所以點擊左側設計器里空白的地方即可在右側屬性欄里看到屬性)

這里屬性是控制服務器是否可以停止,暫停,繼續(xù)等等的操作。根據(jù)需要選擇。屬性的名字已經很明白了,不需要再做太多解釋。我是把 CanPauseAndContinue 和 CanShutDown 設置為 true。

ServiceName 屬性是這個服務的以后再服務管理器中顯示的名稱。

3. 設置Windows服務的安裝程序

在設計窗口里右鍵單擊鼠標,選擇“添加安裝程序”。這樣就可以添加 ProjectInstaller.cs 以及serviceInstaller1 和 serviceProcessInstaller1 這兩個對象都有一個比較重要的屬性。

單擊 serviceInstaller1 在右側的屬性窗口里有 StartType 屬性,指定的是啟動服務的方式和時間。如果想讓服務開機啟動,并一直運行,將這個屬性設置為 Automatic。

單擊 serviceProcessInstaller1 在右側的屬性窗口里有 Account 屬性,指定的是運行此服務的帳戶類型。如果想讓所有用戶都使用這個服務,將這個屬性設置為 LocalService

目前所有的創(chuàng)建及屬性設置工作就結束了。下面開始進行代碼編寫工作。

4. 需要用計時器來定時檢測程序是否運行,因此我們要增加一個Timer控件。

打開代碼窗口。

首先,增加 using System.Timers; 引用。

這里有OnStart(string[] args)和OnStop()兩個函數(shù)。顧名思義,OnStart 就是服務啟動時運行的代碼。OnStop就是服務結束時運行的代碼。

我們在OnStart里創(chuàng)建Timer控件,并設置其屬性和增加事件。

System.Timers.Timer t = new System.Timers.Timer(1000); //這里的1000指的是Timer的時間間隔為1000毫秒
t.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Click); //Timer_Click是到達時間的時候執(zhí)行事件的函數(shù)
t.AutoReset = true; //設置是執(zhí)行一次(false)還是一直執(zhí)行(true)
t.Enabled = true; //是否執(zhí)行System.Timers.Timer.Elapsed事件

這樣,當服務運行后,每1秒都將執(zhí)行 Timer_Click 函數(shù)

5. 編寫 Timer_Click 函數(shù)

private void Timer_Click(Object sender, ElapsedEventArgs e)
{
  Process[] localByName = Process.GetProcessesByName("exe");
  if (!IsExistProcess("exe")) //如果得到的進程數(shù)是0, 那么說明程序未啟動,需要啟動程序
  {
    Process.Start("exe"); //啟動程序的路徑
  }
  else
  {
    //如果程序已經啟動,則執(zhí)行這一部分代碼
  }
}
private bool IsExistProcess(string processName)
{
  Process[] MyProcesses = Process.GetProcesses();
  foreach (Process MyProcess in MyProcesses)
  {
    if (MyProcess.ProcessName.CompareTo(processName) == 0)
    {
      return true;
    }
  }
  return false;
}

現(xiàn)在所有代碼的工作也完成了。

6. 生成Windows服務的應用程序

單擊 生成 ——》生成 WindowsService1
這時,在 D:\Soft\WindowsService1\bin\Debug 文件夾里會生成 WindowsService1.exe 文件。
如果成功即可執(zhí)行下一步。

7. 安裝服務

serviceInstaller1屬性中設置:

Description(系統(tǒng)服務的描述)
DisplayName (系統(tǒng)服務中顯示的名稱)
ServiceName(系統(tǒng)事件查看器里的應用程序事件中來源名稱)

serviceProcessInstaller1屬性設置:Account 下拉設置成 LocalSystem

服務與應用程序不一樣,不能夠通過在Visual Studio里運行,必須使用安裝軟件安裝到Windows 服務里去。完成上面三個截圖的操作后,繼續(xù)下面注冊和卸載操作。

這個安裝軟件在 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 這個文件夾里

程序名稱為 InstallUtil.exe
要運行這個程序需要使用 command "命令提示符" 程序。

單擊開始——》運行——》輸入"cmd”單擊確定
輸入cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 回車 進入這個文件夾
輸入InstallUtil D:\Soft\WindowsService1\bin\Debug\WindowsService1.exe 即InstallUtil + 服務.exe文件的地址 回車。這時服務就安裝完畢了。
如果想卸載這個服務也是用這個軟件。
輸入InstallUtil D:\Soft\WindowsService1\bin\Debug\WindowsService1.exe -u 即"InstallUtil + 服務.exe文件的地址 - u" 回車。這時服務就卸載完畢了。
當然我們現(xiàn)在不需要卸載這個服務?,F(xiàn)在只差最后一步實現(xiàn)我們的功能了。

8. 啟動服務

服務安裝成功以后,并沒有啟動,我們需要在服務管理器中啟動它,并且如果運行的程序是帶窗體的程序,還需要修改一下服務的屬性。

進入控制面板——》管理工具——》服務 打開服務管理器?;蛘哌\行-------->cmd------->services.msc---本地服務設置

在右側的服務列表中找到我們剛才安裝的服務,服務名稱就是第2步中ServiceName屬性的內容。這里就是WindowsService1。

如果運行的程序是帶窗體的程序,那么右鍵單擊這個服務選擇“屬性”——》單擊“登錄”標簽(在最上面)——》選擇本地系統(tǒng)帳戶——》在“允許服務與桌面交互”復選框前打勾——》單擊確定退出屬性。

這是,帶有窗體的程序才會正常運行。否則只會在進程中看到該程序,但是沒有窗體。

現(xiàn)在可以單擊這個服務,然后單擊啟動來啟動這個服務了。

全部過程結束。

你也可以為服務創(chuàng)建安裝!

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#遍歷算法與技巧總結》、《C#程序設計之線程使用技巧總結》、《C#操作Excel技巧總結》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數(shù)據(jù)結構與算法教程》、《C#數(shù)組操作技巧總結》及《C#面向對象程序設計入門教程

希望本文所述對大家C#程序設計有所幫助。

相關文章

  • C#中Byte[]和String之間轉換的方法

    C#中Byte[]和String之間轉換的方法

    很多朋友不清楚如何在Byte[]和String之間進行轉換?下面小編給大家?guī)砹薭yte與string轉換的方法,感興趣的朋友參考下吧
    2016-08-08
  • 相對路徑和絕對路徑的寫法總結

    相對路徑和絕對路徑的寫法總結

    本文主要對相對路徑和絕對路徑的寫法進行總結。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • C#實現(xiàn)類似新浪微博長URL轉短地址的方法

    C#實現(xiàn)類似新浪微博長URL轉短地址的方法

    這篇文章主要介紹了C#實現(xiàn)類似新浪微博長URL轉短地址的方法,涉及C#操作正則表達式的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#字符串左不足位數(shù)時補充0的幾種方式

    C#字符串左不足位數(shù)時補充0的幾種方式

    想讓一個整數(shù)或字符串轉換為字符串后,如果其長度不足5位,則在左邊補充0直到達到5位,本文給大家介紹了C#字符串左不足位數(shù)時補充0的幾種方式,感興趣的朋友可以參考下
    2024-04-04
  • C#11新特性之file關鍵字的用法教程

    C#11新特性之file關鍵字的用法教程

    C#11?添加了文件作用域類型功能:一個新的?file?修飾符,可以應用于任何類型定義以限制其只能在當前文件中使用。這樣,我們可以在一個項目中擁有多個同名的類。本文就來聊聊file關鍵字的用法,需要的可以參考一下
    2022-12-12
  • C#結合數(shù)據(jù)庫的數(shù)據(jù)采集器示例

    C#結合數(shù)據(jù)庫的數(shù)據(jù)采集器示例

    這篇文章主要介紹了C#結合數(shù)據(jù)庫的數(shù)據(jù)采集器,功能比較實用,需要的朋友可以參考下
    2014-07-07
  • C#對稱加密與非對稱加密實例

    C#對稱加密與非對稱加密實例

    這篇文章主要介紹了C#對稱加密與非對稱加密實例,詳細分析了對稱加密與非對稱加密的原理與具體實現(xiàn)方法,具有一定的實用價值,需要的朋友可以參考下
    2014-10-10
  • C#在 .NET中使用依賴注入的示例詳解

    C#在 .NET中使用依賴注入的示例詳解

    這篇文章主要為大家詳細介紹了C#如何在 .NET中使用依賴注入,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以跟隨小編一起了解一下
    2024-01-01
  • C#實現(xiàn)線程安全的簡易日志記錄方法

    C#實現(xiàn)線程安全的簡易日志記錄方法

    這篇文章主要介紹了C#實現(xiàn)線程安全的簡易日志記錄方法,比較實用的功能,需要的朋友可以參考下
    2014-08-08
  • C#七大經典排序算法系列(下)

    C#七大經典排序算法系列(下)

    這篇文章主要為大家詳細介紹了C#七大經典排序算法系列下篇,直接插入排序,希爾排序和歸并排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

承德县| 灵宝市| 三江| 鱼台县| 南乐县| 玛沁县| 蓬溪县| 扎鲁特旗| 岳普湖县| 山阴县| 揭阳市| 长宁县| 三穗县| 思茅市| 清苑县| 兴隆县| 体育| 吕梁市| 翁牛特旗| 南京市| 津南区| 军事| 离岛区| 永登县| 丰顺县| 鄱阳县| 秦皇岛市| 德格县| 青田县| 镇巴县| 嵊泗县| 精河县| 东平县| 横山县| 博爱县| 延安市| 吴桥县| 邹城市| 庆阳市| 五指山市| 五家渠市|