当前位置:  编程技术>.net/c#/asp.net

C#编写Windows服务实例代码

    来源: 互联网  发布时间:2014-10-23

    本文导语:  Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合...

Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。

新建一个Windows Services工程:

 

工程创建好之后,默认会有一个Services1.cs文件,删掉此文件,重新添加一个新Item

右击新添加的这个文件,选择View code,可以看到,有两个函数 OnStart和OnStop,OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。

这两个函数的代码如下:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace MyFirstWindowsService
{
    partial class MyWindowsService : ServiceBase
    {
        public MyWindowsService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            // TODO: Add code here to start your service.
            FileStream fileStream = new FileStream(@"D:MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter streamWriter = new StreamWriter(fileStream);

            streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            streamWriter.WriteLine("My service started" + DateTime.Now.ToString() + "n");

            streamWriter.Flush();

            streamWriter.Close();

            fileStream.Close();
        }

        protected override void OnStop()
        {
            // TODO: Add code here to perform any tear-down necessary to stop your service.
            FileStream fileStream = new FileStream(@"D:MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter streamWriter = new StreamWriter(fileStream);

            streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            streamWriter.WriteLine("My service stopped " + DateTime.Now.ToString() + "n");

            streamWriter.Flush();

            streamWriter.Close();

            fileStream.Close();
        }
    }
}

之后需要新建一个安装组件MyWindowsServiceProjectInstaller(右击MyWindowsService.cs这个文件选择view desiner,然后选择Add Installer),需要将MyFirstWindowsServiceProcessInstaller的account属性设置为localservice.

编写批处理文件:

 安装服务批处理:

代码如下:

 %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe C:Usersgaoja1DesktopMyWindowsServiceMyFirstWindowsServicebinDebugMyFirstWindowsService.exe
 Net Start ServiceTest
 sc config ServiceTest start= auto

卸载服务批处理:

代码如下:

%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u C:Usersgaoja1DesktopMyWindowsServiceMyFirstWindowsServicebinDebugMyFirstWindowsService.exe

服务安装好之后:





服务启动之后可以在D盘看到一个txt的文件,里面记录了服务的启动时间.

    
 
 

您可能感兴趣的文章:

  • 用C#编写获取远程IP,MAC的方法
  • 将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
  • C#控制台带参数程序源码编写实例讲解
  • c#编写webservice服务引用实例分享
  • 用C#编写ActiveX控件(二)
  • 用C#编写ActiveX控件(三)
  • c#编写可逆加密类(3DES加密)的教程
  • 用 C# 编写一个停放在任务栏上的图标程序
  • c# 数据库的 sql 参数封装类的编写
  • C#编写方法实例
  • 用C#编写ActiveX控件(一)
  • C#编写的windows计算器的实例代码
  • python3编写C/S网络程序实例教程
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • PHP调用VC编写的COM组件实例
  • LINUX 使用libx编写界面 如何创建Widget 实例的问题,请高手指点
  • C语言编写银行打印程序实例参考
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在windows下可以用Code::Blocks编写linux程序吗?
  • HTML教程 iis7站长之家
  • 编写一个Windows连接到Linux的程序的问题
  • 在windows下装了cygwin以后可否进行linux程序的编写
  • 编写shell脚本执行远端windows的批处理
  • Unix里编写动态库时会不会像Windows一样在源代码中含有Dllmain()类似的主函数?
  • LINUX下有没有和WINDOWS一样的打印机驱动程序啊,或者是不是要自己编写啊?
  • 在Linux下不用X-Windows,如何编写图形界面应用程序! 像GTK,KDE都是建立在X-Window上!
  • Linux中有没有类似Windows中的动态链接库的东东?怎么编写的?
  • 深入详解C编写Windows服务程序的五个步骤
  • 编写 linux shell 有什么好的编写工具呢?
  • VB编写的DLL不能被JAVA调用,用C将VB编写的DLL包装起来,做成一个新的DLL;用C编写的DLL可以被JAVA调用,用JAVA再进行一层的包装,因为JAV
  • 用Qt3.1.4编写的程序,如何加入自己编写的另外一个动态库呀?诚恳指教!!
  • 如图 scsi <---> scsi controller <---> pci <---> cpu 如果我想对scsi编写驱动我该对哪个部分编写?
  • 用什么工具编写JSP,可以象用InterDev编写ASP一样方便快捷?
  • 编写程序如编写人生,有人和我的意见相同吗?
  • 请问用jsp编写程序,非要编写代码么?有没有什么象fontpage2000那样的工具,能够生成一些固定模板的工具?就是说不用全部都写的工具。望
  • 用jsp编写web程序到底和java serverlet编写web程序有和区别
  • socket中,从client端(用java编写的)传到server端(用c编写的)的字符串为何总多一个ASCII码为10的字符呀?
  • 如何用java编写一个NT平台下的标准服务?
  • 关于用vj编写sniffer一问。
  • Linux下如何编写脚本文件
  • java能不能编写单独运行的程序?
  • Linux有没有类似bat文件,如何编写。
  • 用JAVA编写COM组件
  • 关于版本和bug管理的rule(规则)的编写
  • 函数互相调用时Makefile编写
  • AIX下如何编写批处理命令和计划任务
  • 怎么用JBuild编写java console程序
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3