首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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注册自己特定的请求.

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

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 服务 一个进程 多个服务的使用

1.5K30

ServiceController操作Windows服务

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

48810

windows服务管理操作

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

1.7K10

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

44820

Windows服务框架与服务的编写

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

1.5K10

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.2K30

使用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 ,可以简化很多工作和增加灵活性

95560

用.NET创建Windows服务

什么是Windows服务Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合。它没有用户界面,并且也不会产生任何可视输出。任何用户消息都会被写进Windows事件日志。...Windows 服务,以前的NT服务,都是被作为Windows NT操作系统的一部分引进来的。它们在Windows 9x及Windows Me下没有。...服务 Windows服务不同于普通Windows应用程序。...调试Windows服务 从另外的角度度看,调试Windows服务绝不同于一个普通的应用程序。调试Windows服务要求的步骤更多。...附加正在运行的Windows服务 为了调试程序,有些附加Windows服务的操作说明。这些操作假定你已经安装了这个Windows服务并且它正在运行。 1.

1K30

Windows查看服务占用端口

本文以MongoDB为例,其他服务的查看流程类似: 1.查看服务的PID 名词解释: 服务:电脑访问数据库,其实数据库就是一种服务服务必须要开启后,才能对其进行访问。...而电脑开启1个服务,这个服务在电脑中就是1个进程。 PID:process identification的简称,进程识别符,一般是10进制的数字。...在Windows系统中查看服务的PID的方法是打开任务管理器,进入详细信息页面。 如果打开任务管理器时是简略信息页面,点击“详情信息”按钮,如下图所示: ?...例如我们要找MongoDB服务的PID,按照顺序往下翻,如下图所示: ? image.png 从上图可以看出MongoDB服务的PID为4584。...2.查看PID对应的端口 打开cmd,按Windows+r组合键,在运行窗口中,输入命令cmd,如下图所示: ?

22.8K41

windows安装搭建Tomcat服务

windows下载安装tomcat下载地址: https://tomcat.apache.org/download-90.cgi 下载后解压到我们的本地目录 我们看看tomcat的目录结构 tomcat...与一同理 3>修改变量Path 注windows10添加步骤: 在系统变量中找到Path变量名,双击或点击新建,在末尾添加如下内容 %TOMCAT_HOME%\bin;%CATALINA_HOME%\lib...windows7添加步骤: 在系统变量中找到Path变量名,双击或点击编辑,在末尾添加如下内容 ;%TOMCAT_HOME%\bin;%CATALINA_HOME%\lib 这里要注意,各个变量值之间一定要用...启动tomcat服务 打开我们的cmd命令行,使用普通者身份打开就行,进入tomcat安装目录执行startup命令就可以看到tomcat正常启动成功。...我们来看看,访问一下,阿帕奇服务tomcat中间件启动是怎样的?

5.4K20

使用Topshelf部署Windows服务

Sample Topshelf Host"); x.SetDisplayName("Stuff"); x.SetServiceName("Stuff"); x.UseLog4Net(); }); 自定义服务...new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); 如果采用上面的配置的话在调试的时候会写日志,可是在部署成服务时就不写日志了...安装服务的话可以用管理员权限打开Cmd,定位到程序所在目录,使用下面命令安装即可: TopShelfService.exe install 注意中间是空格,卸载同理: TopShelfService.exe...在目标的后面直接添加空格和install,再创建一个卸载的快捷方式,在目标后面添加空格和uninstall,注意如果是win7系统,需要更改快捷方式兼容性中以管理员身份运行此程序,当然,如果把程序部署到另外的服务器上的话可能快捷方式的路径会改变

71530
领券