c#写windows 服务

c# windows 服务 , 我想网上到处都是 , 我就不多说了如果你要在服务中调用一个 .exe 的话 !
using System.Diagnostics;
using System.ServiceProcess;
private Process NEC_process = null;
在
onstart()
{
  System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
                Info.FileName ="";//.exe的路径
                Info.WorkingDirectory = "";//工作目录
                Info.WindowStyle = ProcessWindowStyle.Minimized;//exe是否显示程序窗口
                NEC_process = System.Diagnostics.Process.Start(Info); 
                NEC_process.Start();//开启一个进程
}
onstop()
{
     NEC_process.Kill(); 
}


监控系统进程   
监测到别的应用程序是否启动或关闭  

 Process   []     process   =   Process.GetProcessesByName(   "你的程序在任务管理器中的名称"   );   
        if(process.Length>1)   
        {   
          MessageBox.Show("已启动了一个此程序");   
          Application.ExitThread();       
        }   

程序代码

using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceProcess;
using System.Configuration.Install;

namespace CjjerTest.DotNet.ServiceDST
{
    // 应用程序
    public class MyFirstService : System.ServiceProcess.ServiceBase
    {
        public MyFirstService()
        {
            this.CanPauseAndContinue = true;
            this.CanShutdown = true;
            this.CanHandleSessionChangeEvent = false;

            this.ServiceName = "MyFirstService";
        }

        protected override void OnStart(string[] args){

        }
        protected override void OnStop(){

        }
        protected override void OnContinue(){

        }
        //启动
        public static void Main()
        {
            ServiceBase[] servicesToRun = new ServiceBase[] {new MyFirstService()};
            ServiceBase.Run(servicesToRun);
        }
    }

    //安装
    [RunInstaller(true)]
    public class ProjectInstaller : System.Configuration.Install.Installer
    {
        private ServiceProcessInstaller myServiceProcessInstaller;
        private ServiceInstaller myServiceInstaller;

        public ProjectInstaller()
        {
            this.myServiceProcessInstaller = new ServiceProcessInstaller();
            this.myServiceInstaller = new ServiceInstaller();

            // 安装
            // 用户名 和 密码
            this.myServiceProcessInstaller.Account = ServiceAccount.LocalSystem;
            this.myServiceProcessInstaller.Username = null;
            this.myServiceProcessInstaller.Password = null;

            // 服务名称,这样可以在net stop XX 里面使用了
            // 启动类型
            this.myServiceInstaller.ServiceName = "MyFirstService";
            this.myServiceInstaller.StartType = ServiceStartMode.Automatic;

            // 加入
            this.Installers.AddRange(new Installer[] {this.myServiceProcessInstaller, this.myServiceInstaller});
        }
    }
}

 

 protected override void OnStart(string[] args){    
            StreamWriter sw=new StreamWriter(@"E:\web\web\net\test\sernet.txt",true);
            sw.Write("\r\n另一条数据");
            sw.Close();

            base.OnStart( args );
        }

今天用c#windows服务程序,写啊写啊,查了资料,网上有篇文章写得不错

在很多应用中需要做windows服务来操作数据库等操作,比如
1)一些非常慢的数据库操作,不想一次性去做,想慢慢的通过服务定时去做,比如定时为数据库备份等
2)在.net Remoting中利用windows服务来做Host

利用vs.net我们可以在几分钟之内建立其windows服务,非常简单

下面说一下步骤
1.
新建一个项目
2.
从一个可用的项目模板列表当中选择Windows服务
3.
设计器会以设计模式打开
4.
从工具箱的组件表当中拖动一个Timer对象到这个设计表面上 (注意:要确保是从组件列表而不是从Windows窗体列表当中使用Timer)  
5.
设置Timer属性,Interval属性200毫秒(1秒进行5次数据库操作)
6.
然后为这个服务填加功能
7.
双击这个Timer,然后在里面写一些数据库操作的代码,比如
SqlConnection conn=new SqlConnection("server=127.0.0.1;database=test;uid=sa;pwd=275280");
     SqlCommand comm=-new SqlCommand("insert into tb1 ('111',11)",conn);
     conn.Open();
     comm.ExecuteNonQuery();
     conn.Close();
8.
将这个服务程序切换到设计视图
9.
右击设计视图选择添加安装程序

fromhttp://post.blog.hexun.com/imagine18/trackback.aspx?articleid=6056177
10.
切换到刚被添加的ProjectInstaller的设计视图
11.
设置serviceInstaller1组件的属性:  
      1) ServiceName = My Sample Service
      2) StartType = Automatic (
开机自动运行)
12.
设置serviceProcessInstaller1组件的属性    Account = LocalSystem
13.
改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
14.
执行命令“InstallUtil MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。(InstallUtil这个程序在WINDOWS文件夹\Microsoft.NET\Framework\v1.1.4322下面)
15.
右击桌面上我的电脑,选择管理就可以打计算机管理控制台
16.
服务和应用程序里面的服务部分里,你可以发现你的Windows服务已经包含在服务列表当中了
17.
右击你的服务选择启动就可以启动你的服务了
看看数据库是不是一秒多了5个记录啊
(InstallUtil/u MyWindowsService.exe
删除服务)

转自:http://www.cnblogs.com/chiropter/articles/1932463.html
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值