Windows的服务功能初探介绍
发布时间:2012-08-10 09:57:38 作者:佚名
我要评论
本文介绍了Windows的服务
在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
相关文章
Windows 11系统里的广告越来越多,弹窗、推荐、提示层出不穷,简直让人抓狂!别急,今天我为大家带来一份超详细的教程,手把手教你如何关闭这些烦人的广告,让你的Win11清2026-04-18
电脑打印机状态错误怎么解决? 快速搞定Windows打印机状态错误的方法
当我们急需打印文件时,电脑右下角弹出的“打印机处于错误状态”或“无法打印”的提示,无疑会让人感到困扰和焦虑,这种“错误状态”看似复杂,但实际上多数问题并非源于硬2026-04-18
电脑网络受限怎么办? Windows提示网络连接受限的解决办法
昨晚加班到一半,突然发现右下角的网络图标多了个黄色叹号,提示“本地连接受限制”,下面我们就来看看解决办法2026-04-18
轻松保护你的电脑隐私! Windows系统如何设置动态锁功能
如果您希望在离开电脑时无需手动操作即可自动锁屏,Windows动态锁功能可通过蓝牙检测手机距离实现该效果,以下是设置此功能的具体步骤2026-04-17
保护电脑数据安全! Windows系统快速关闭磁盘默认共享方法
你可能还不知道,系统默认还开启了硬盘分区(如C盘、D盘)的共享功能,今天我们就来看看一键关闭Windows默认共享,保护电脑数据安全的设置方法2026-04-17
Windows预览窗口大小怎么自由调节? 电脑任务栏预览窗口设置方法
对于Windows系统的深度用户来说,文件预览功能无疑是日常操作中的得力助手,然而,系统默认的预览窗口大小可能并不完全符合每个人的使用习惯,今天,我就为大家带来一个技术2026-04-17
windows无法更改设置怎么办? 电脑不允许修改系统设置无问题的解决办法
想要调整一下系统设置,却发现无论你怎么点来点去,它就是不给你改!这可真是让人欲哭无泪啊!别担心,今天我就来给大家分享一些解决方法,让你的Windows系统设置恢复正常2026-04-17
如何启用项目复选框? Windows系统打开文件复选框设置的教程
Windows复选框,也称为项目复选框,允许您在文件资源管理器中轻松选择多个文件和文件夹,默认情况下,此功能在Windows中是禁用的,但您可以通过进行一些简单的自定义来快速2026-04-16
Windows系统如何设置DPI缩放? 屏幕DPI缩放设置全攻略
你是否遇到过这样的困扰:新买的4K显示器文字模糊发虚?手机屏幕图标小到看不清?这可能并非硬件问题,而是DPI设置在“捣乱”!本文将系统解析DPI设置原理与实操技巧,助你2026-04-16
微软放大招! 所有Windows镜像都将失效 强制执行阶段已到来
最近,微软在win11系统“设置-Windows安全中心-设备安全性”中新增了安全启动检查,由于一个不可忽视的“硬期限”到来,安全启动的旧证书要过期了2026-04-08



最新评论