首页
学习
活动
专区
圈层
工具
发布

Windows服务编程

一、服务(Service) 服务程序是NT系统支持的一种可执行文件,通常服务程序不与用户进行交互,在系统启动时会自动启动服务程序。...2.服务入口函数. 每个服务必须有一个服务入口函数,服务入口函数就是服务的执行体。其实每个服务在运行时都是一个新的线程。而服务入口点函数由自己定义。...,计算机正在关机时会发出这个请求,这个请求将等待20秒,若20秒未处理完则关闭计算机 SERVICE_CONTROL_PARAMCHANGE Windows 2000: 通知服务,传递给服务入口的启动参数已经改变..., SERVICE_CONTROL_NETBINDADD Windows 2000: SERVICE_CONTROL_NETBINDREMOVE Windows 2000: SERVICE_CONTROL_NETBINDENABLE...Windows 2000: SERVICE_CONTROL_NETBINDDISABLE Windows 2000: 128--255: 服务可以向SCM注册自己特定的请求.

2.1K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows 服务 同时启动多个服务

    Windows 服务 同时启动多个服务 独立观察员 2019.02.26 最近需要开发 Windows Service 程序,之前没有接触过,所以把了解到的一些东西记录下来。...Windows 服务程序可以简单理解为需要长时间在后台运行, 而又不需要界面显示的程序,在计算机管理 --> 服务和应用程序 --> 服务中可以看到: 我们先来新建一个 "Windows 服务" 项目...,具体可参考《C# 编写 Windows Service(windows 服务程序)》(https://www.cnblogs.com/bluestorm/p/3510398.html)一文。...逻辑写在继承于 ServiceBase 类的类中,该类型的类通过添加 "Windows 服务" 来生成: 双击生成的类文件,打开的是一个设计页面,可点击切换到代码视图: 代码视图中可以看到,是继承于...Projectlnstaller.Designer.cs 文件,这个是 VS 自动生成的,本来是不需要我们修改的,但这里似乎有一个 bug (参考:《[c# windows 服务 一个进程 多个服务的使用

    2.2K30

    ServiceController操作Windows服务

    使用.Net框架类库中自带的组件ServiceController可以实现对Windows服务的操作。...方法:ServiceController.GetServices()返回非设备驱动程序服务和不是驱动程序的服务。若要检索设备驱动程序服务,请调用 GetDevices 方法。...这两种方法一起提供对计算机上所有服务的访问。 属性:Status表示现有服务的运行状态。取值包括: ContinuePending 服务即将继续。 Paused 服务已暂停。...PausePending 服务即将暂停。 Running 服务正在运行。 StartPending 服务正在启动。 Stopped 服务未运行。 StopPending 服务正在停止。...Win32OwnProcess Win32 程序,可由“服务控制器”启动,并遵守服务控制协议。此类 Win32 服务单独运行在一个进程中。

    74210

    windows服务管理操作

    服务程序是windows上重要的一类程序,它们虽然不与用户进行界面交互,但是它们对于系统有着重要的意义。...windows上为了管理服务程序提供了一个特别的程序:服务控制管理程序,系统上关于服务控制管理的API基本上都与这个程序打交道。...下面通过对服务程序的操作来说明这些API函数 获取系统服务的信息 在windows系统中有专门用来存储服务信息的数据库,而获取系统服务信息主要是通过在这样的数据库中查找。...lpResumeHandle:额外的句柄 每一个ENUM_SERVICE_STATUS结构体保存的是一个服务的信息,但是我们事先并不知道有多少个服务,因此不知道该定义多大的服务信息数组,但是windows...,并根据其中的某些信息来启动这个服务,有的选项是必填的,比如服务名称,这个是用来唯一标识一个服务的,服务所在路径告知服务控制管理器启动哪个程序,而向依赖、密码等等信息可以不用填写。

    2.1K11

    关闭Windows Update服务

    关闭Windows Update服务可以通过以下步骤进行操作: 打开“控制面板”: 可以通过搜索“控制面板”来找到它。...找到“Windows Update”选项: 在控制面板中,找到并点击“Windows Update”或“更新和安全”选项。...关闭Windows Update服务: 在Windows Update设置中,找到“高级选项”或“更新设置”部分。...在该部分中,找到并点击“关闭Windows Update服务”或相应的选项。 如果系统提示您确认关闭服务,请点击“确定”或“确定并关闭”。...请注意,关闭Windows Update服务可能会影响系统的安全性、更新速度和兼容性。如果您确定不再需要更新功能,建议暂时关闭它,以便在需要时重新启用。

    38800

    Windows服务小结 1

    Windows服务使用Console模式运行 Windows服务定义 Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。...还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。 我们在开发一些无UI服务或者Job的时候,一般我们会选择Windows服务来开发。...一般开发者对Windows服务的感觉是很复杂的,因为它出了问题不好调试,难以定位bug的root cause。 所以本文主要讲解: 如何使用Console的运行方式来执行Windows服务?...所以我们如果想使用Console的运行方式调用Windows服务,Windows服务所在项目,它的类型必须是Console Application。...所以我们首先新建一个Console项目,然后在里面添加一个Windows服务,定义如下: public partial class MyService : ServiceBase { FileInfo

    59320

    Windows服务框架与服务的编写

    ,而且服务程序一般不予用户进行交互,可以安静的在后台执行,合理的利用服务程序可以简化我们的系统设计,比如Windows系统的日志服务,IIS服务等等。...服务程序是由服务管理器负责调度,控制的,所以我们在编写服务程序的时候必须满足服务控制管理器的调度,必须包含: 1....在入口函数中我们必须给服务一个控制管理程序,这个程序主要是用来处理服务程序接受到的各种控制消息,比如启动服务,暂停服务,停止服务等,这个函数有点类似于Windows 窗口程序中的窗口过程。...函数把状态报告给服务管理器程序注意:即使状态无变化也要报告 服务控制管理器 在服务中一般有3类对象(在这并不是指Windows系统的内核对象,这里只是为了便于理解给出的一个分类): 1....服务程序对象:服务本身的代码,一般是服务主要完成的功能代码 2. 服务控制对象:用来控制服务,向服务发送执行 3.

    1.8K11

    C# Windows服务开发

    前言 我要开发一个系统服务,服务的作用是定时检测并关闭其他应用的弹窗,但是开发后却发现,服务在运行是压根获取不到任何窗口。...原因在于 Windows服务一般在Session0里,EXE应用一般在Session1里,Win7及以后的系统将服务与应用程序进行了Session隔离,不允许其进行UI交互,可以考虑穿透Session...总的来说有以下注意点 服务的Account属性设置为LocalSystem,安装服务后的登录身份则为本地系统账户 不要把Windows服务的程序放在C:\Users\Administrator\目录下运行...,不然启动服务的时候会遇到权限问题 程序要在Session1中运行 创建Windows服务 创建后在Service1.cs的设计试图上右键 添加安装程序 之后会出现以下两个 点击1 对应的属性...= windows[i]; if (win.Title.Contains("WPS") && !

    1.6K30

    使用Topshelf创建Windows 服务

    Windows 服务由三部分组成: 一个服务可执行文件; 一个服务控制程序(SCP); 服务控制管理器(SCM),负责在 HKLM"SYSTEM"CurrentControlSet"Services 下创建服务键值...用户可通过 SCP 控制服务的启动、停止、暂停等,SCP 会通过 SCM 调用服务程序 开发一个Windows服务通常也比较简单,在开发的时候我们期望以命令行方式运行,想对Windows服务有更多的控制...通过命令运行,安装卸载Windows服务 Stuff.exe  #控制台方式运行 Stuff.exe /install  #安装Windows服务 Stuff.exe /uninstall  #卸载Windows...服务 默认情况下,Windows服务只能运行一个实例,如果我们想运行多个实例怎么办,可以在Topshelf的命令行参数中增加–instance 来指定实例的名称,也可以通过运行时读取配置文件来达到目的...服务实例,推荐大家使用这个Windows服务框架TopShelf ,可以简化很多工作和增加灵活性

    1.3K60

    Windows 10 中删除服务

    文章来自网路搜索,试用后可以试用,特发布存档在 Windows 10 中删除服务需通过管理员权限操作,核心方法包括命令行工具(CMD/PowerShell)、注册表编辑或第三方工具。...查看服务名称‌:输入命令列出所有服务:sc queryex type=service state=all,记录需删除的服务名称(如 Tomcat7)。‌‌‌...执行删除命令‌:输入 sc delete 服务名称(例如 sc delete Tomcat7),成功执行后服务立即移除。‌‌...使用 PowerShell 删除服务适合习惯脚本操作的用户,步骤与 CMD 类似:‌打开管理员权限 PowerShell‌:按 Win + X 选择“Windows PowerShell(管理员)”或搜索...删除服务‌:输入命令:sc delete 服务名称(如 sc delete MySQL2),无提示即表示成功。‌‌

    10210

    创建Windows服务(Windows Services)N种方式总结

    最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来。...服务) installutil /u   WindowsService_test.exe  (卸载Windows服务) 代码下载:http://files.cnblogs.com/aierong/WindowsService_test.rar...b.利用组件Topshelf 本方式特点:代码简单,开源组件,Windows服务可运行多个实例 Topshelf是一个开源的跨平台的服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务...服务) ConsoleApp_Topshelf.exe  uninstall  (卸载Windows服务) 代码下载:http://files.cnblogs.com/aierong/ConsoleApp_Topshelf.rar...srvany.exe:用于将任何EXE程序作为Windows服务运行 这2个工具都是是Microsoft Windows Resource Kits工具集的实用的小工具  你可以通过下载并安装Microsoft

    1.4K10
    领券