南强小屋 Design By 杰米
在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等。一台电脑中的Windows服务可以在“计算机-管理-服务应用程序-服务”中看到,如图:
在这里,我们可以启动或停止一个服务。
创建服务:
下面我们来创建一个文件监视功能的Windows服务。
用VS新建一个项目,模版选择“Windows服务”,在服务代码中会有两个方法:OnStart与OnStop,分别是服务的启动时的执行代码与服务停止时的执行代码。
public partial class WatchService : ServiceBase
{
public WatchService()
{
InitializeComponent();
}
FileSystemWatcher watcher;
/// <summary>
/// 服务开始时执行代码
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
WriteLog("服务开始");
string path = @"D:\text";
watcher = new FileSystemWatcher(path);
// 监视新增文件
watcher.NotifyFilter = NotifyFilters.FileName;
//同时监视子目录
watcher.IncludeSubdirectories = true;
watcher.Created += new FileSystemEventHandler(watcher_Changed);
watcher.EnableRaisingEvents = true;
}
/// <summary>
/// 服务停止时执行代码
/// </summary>
protected override void OnStop()
{
WriteLog("服务停止");
}
private void watcher_Changed(object sender, FileSystemEventArgs e)
{
try
{
WriteLog(e.Name + " " + e.ChangeType);
}
catch (Exception ex)
{
WriteLog(ex.ToString());
}
}
/// <summary>
/// 写日志的方法
/// </summary>
/// <param name="msg"></param>
private void WriteLog(string msg)
{
string path = @"D:\log.txt";
using (StreamWriter sw = new StreamWriter(path, true))
{
sw.WriteLine(DateTime.Now.ToString() + " " + msg);
}
}
}
发布服务:
转到服务的界面窗体,点击右键,选择添加安装程序,会出现一个ProjectInstaller.cs。在其界面窗体中,选择serviceInstaller1,右键属性,可以设置服务启动方式,服务名称(服务名称不能与其它Windows服务名称重名),服务描述,服务显示名称等,如图:
另一个serviceProcessInstaller1的属性可以设置服务的运行账户,如图:
完成这些设置后,重新生成服务,打开VS2010命令行工具,以管理员身份运行,输入命令InstallUtil.exe+服务程序地址,如InstallUtil.exe “D:\Service\FileWatchDemo.exe” 提示安装完成后,就可以在服务管理中看到刚刚安装的服务了。删除服务: InstallUtil.exe /u +"服务地址" InstallUtil.exe /u "D:\Service\FileWatchDemo.exe" 或 SC delete +服务名称,如 sc delete FileWatchService 作者 Gyoung
在这里,我们可以启动或停止一个服务。
创建服务:
下面我们来创建一个文件监视功能的Windows服务。
用VS新建一个项目,模版选择“Windows服务”,在服务代码中会有两个方法:OnStart与OnStop,分别是服务的启动时的执行代码与服务停止时的执行代码。
public partial class WatchService : ServiceBase
{
public WatchService()
{
InitializeComponent();
}
FileSystemWatcher watcher;
/// <summary>
/// 服务开始时执行代码
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
WriteLog("服务开始");
string path = @"D:\text";
watcher = new FileSystemWatcher(path);
// 监视新增文件
watcher.NotifyFilter = NotifyFilters.FileName;
//同时监视子目录
watcher.IncludeSubdirectories = true;
watcher.Created += new FileSystemEventHandler(watcher_Changed);
watcher.EnableRaisingEvents = true;
}
/// <summary>
/// 服务停止时执行代码
/// </summary>
protected override void OnStop()
{
WriteLog("服务停止");
}
private void watcher_Changed(object sender, FileSystemEventArgs e)
{
try
{
WriteLog(e.Name + " " + e.ChangeType);
}
catch (Exception ex)
{
WriteLog(ex.ToString());
}
}
/// <summary>
/// 写日志的方法
/// </summary>
/// <param name="msg"></param>
private void WriteLog(string msg)
{
string path = @"D:\log.txt";
using (StreamWriter sw = new StreamWriter(path, true))
{
sw.WriteLine(DateTime.Now.ToString() + " " + msg);
}
}
}
发布服务:
转到服务的界面窗体,点击右键,选择添加安装程序,会出现一个ProjectInstaller.cs。在其界面窗体中,选择serviceInstaller1,右键属性,可以设置服务启动方式,服务名称(服务名称不能与其它Windows服务名称重名),服务描述,服务显示名称等,如图:
另一个serviceProcessInstaller1的属性可以设置服务的运行账户,如图:
完成这些设置后,重新生成服务,打开VS2010命令行工具,以管理员身份运行,输入命令InstallUtil.exe+服务程序地址,如InstallUtil.exe “D:\Service\FileWatchDemo.exe” 提示安装完成后,就可以在服务管理中看到刚刚安装的服务了。删除服务: InstallUtil.exe /u +"服务地址" InstallUtil.exe /u "D:\Service\FileWatchDemo.exe" 或 SC delete +服务名称,如 sc delete FileWatchService 作者 Gyoung
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无Windows的服务功能初探介绍的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?