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系统清除运行窗口历史记录的技
winodws的命令行界面是一个不错的快捷方式,我们只需要通过"win+r"就可以调用运行命令,随着时间的累积,我们这里会积累下不少历史命令,有泄露隐私的风险,所以2025-04-17
电脑锁屏壁纸怎么固定不变? Windows系统锁定桌面背景图的方法
最近就有不少用户想要锁定电脑的桌面背景图,但不清楚具体如何操作,其实方法非常简单,详细请看下文介绍2025-04-17
怎么关闭windows索引器? Windows系统禁用索引器回退功能的技巧
使用Windows系统中的搜索功能都是在索引功能的基础上建立的,因此,若想要加快搜索索引速度,就要把系统中的索引器回退功能设置为禁用,详细请看下文介绍2025-04-17
微软应用商店无法打开怎么办? 0x80248014错误的原因分析与解决方案
近有不少小伙伴反映,Windows 10自带的微软商店怎么都打不开,显示0x80248014错误错误代码,下面我们就来看看详细解决方案2025-04-16
Windows系统如何关闭自动维护功能? 关闭自动维护轻松提升电脑性能
最近有不少用户想关闭其中的自动维护功能,但不清楚具体如何操作,下面我们就来看看Windows系统关闭自动维护功能的操作方法2025-04-15
微软发布多个 OOB 更新: 用于修复 Active Directory 组策略 Bug
微软发布多个 OOB 更新用于修复 Active Directory 组策略 Bug,该问题具体表现为:当设备已启用 "审核登录 / 注销事件" 功能且实际生效时,本地组策略编辑器或本2025-04-14
定期扫描病毒功能有什么用? Windows系统开启定期扫描病毒功能的技巧
定期扫描病毒功能可以很好的帮助我们电脑定义清理病毒,很多小伙伴都不知道在那里设置进行使用,该怎么开启这个功能呢?详细请看下文介绍2025-04-01
Windows如何设置麦克风增强? Windows系统麦克风权限开启全攻略
麦克风功能作为日常沟通和娱乐的重要工具,其表现尤为关键,然而,不少windows用户发现麦克风的声音偏小,影响了使用体验,下面我们就来看看Windows系统设置麦克风增强功能2025-04-01
关闭VBS功能可以释放部分系统资源,提高系统性能和游戏流畅度,windows系统该怎么关闭vbs功能呢?下面我们就来看看详细教程2025-04-01
Windows Server 2025安装 Hyper-V Docker 容器的图文教程
Hyper-V 容器是 Windows Server 2025 中的一项强大功能,今天我们就来介绍如何在 Windows Server 2025 上安装、配置和运行容器主机,并下载运行一个 IIS 容器2025-03-27



最新评论