0
点赞
收藏
分享

微信扫一扫

在.NET环境写编写和注册Windws Service

/*====================================================================
 虽然简单,但是我们很少写基于这样的应用,我偶尔看到这篇文章,就顺手摘录下来了通过.NET平台编写和发布简单的Windows Service是一件很方便的事情.
 新建一个(VB.NET/C#)项目,选择Windows Service应用..然后在OnStart类里就可以添加代码了.
 如果想实现定时运行,活实时监听的功能,可以用.NET 提供的TIMER类.
 以下是代码片段.
 =====================================================================*/ private void theTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
   {      
    if (!ExCondition())
    {    return;
    }
    try
    {                
     theTimer.Enabled = false;
     MyTransaction();        
    
    } 
    catch(Exception es)
    { 
 
         WriteLog(es.Message);
    }
     theTimer.Enabled = true;
    }//检测执行条件
 private bool ExCondition()
   { 
 
    DateTime dtNow = DateTime.Now;
    if(this.currentmode.Equals("auto"))
    { 
     
     string[] frev = this.freqvalue.Split(''-'');
    
     switch( this.freq)
     { 
 
                     
      case "2"://2-每小时
       if( (dtNow.Minute == 59)&(dtNow.Second< 30))
       { 
 
                               return true;
       }      break;
      case "4"://4-每天,
       if((dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))
       { 
 
        return true;
       }      break;
      case "8"://8-每周,
       int we = int.Parse(frev[0].Substring(1,1));
       if((dtNow.DayOfWeek.ToString().Equals(Week[we]))&(dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))
       { 
 
        return true;
       }
       break;
      case "16"://16-每月,
       int mm = int.Parse(frev[0].Substring(1,frev[0].Length-1));
       if((dtNow.Day == mm)&(dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))
       { 
 
        return true;
       }      break;
      default://无触发
       return true;
       break;
     }
    }
    else
    { 
 
     switch(this.startpoint)
     { 
 
      case "0":
       return true;
       break;
      default:
                         string[] st = startpoint.Split(''-'');
       if((dtNow.Hour == int.Parse(st[0]))&(dtNow.Minute ==int.Parse(st[1]))&(dtNow.Second<30))
       { 
 
        return true;
       }
       break;     }
    }            return false;
   }

注册你的Windows Service程序.
用InstallUtil IASserver.exe (这个文件默认在C:\WINNT\Microsoft.NET\Framework\v1.1.4322下)

InstallUtil IASserver.exe
InstallUtil IASserver.exe /u  (卸载)
 

举报

相关推荐

0 条评论