Windows服务程序编写

所需积分/C币:50 2012-04-15 14:50:17 623KB PDF
156
收藏 收藏
举报

用c语言编写Windows服务程序的步骤,包括实例程序,文字版。
行动。 I次你调用 Setservice status函数的时候,必须指定服务接收STOP和 SHUTDOWN请求, Listing2示范了如何 Controlhandler函数中处理它们 STOP请求是SCM终止服务的时候发送的。例如,如果用户在服务”控剀面板中手终止服务。 SHUTDOWN请求是关闭机器时,由SCM发送给所有运行中服务的请求 两种情况的处理方式相同 写日,文什,监视停止 ·向SCM报告 SERVICE STOPPED状态: 由丁 Servicestatus结构对于整个程序而言为仝局量, Servicestatus中的工作循环在当前状态改变或服务终止后停止,其它的控制请求如: PAUSE和 CONTINUE在本 文的例子没有处理 倥制处理器函数必须报告服务状态,即使SCM锊次发送控制请求的时候状态湨相冋。因此,不响应什么诮求.都要谔用 Set Service Status 些服务 X 操作()查看国■1群 树 描述状态启动类别「登录。4 服务(本地) Ba IIS Admin Service 允许..已启.自动 swaIndexing Service 佛 nternet Connection Sharing为 sss iNtersite Messaging 允许 已禁用 緇 IPSEC Policy Agent 管理..已启.自动 Kerberos Key Distribution ce,产生 已禁用 Locals st License Logging Service 已启.自动 Localsys. 已启.自动 DiaLogical Disk Manager 逻辑…,已启.自动 Localsys Logical Disk Manager Admini,磁量 ta Machine Debug Manager 支持..已启..自动 LocalSys statu Localsys, Ya Messenger 送.已启.自动 'a Microsoft search 基于..已启..自动 Localsys MsCL扑旧TSD米 已启.自动 cAiS sfaMSSQLSERVER 已启..自动 aMSSQLServer ADHelper 手动 LocalSys sa Net Logon 支持 手动 Localsys 雌 NetMeeting Remote Desktop,允许 calss. 图一显小 Memory Status服务的务控制面板 第四步:安转和配置服务 峾序编好了,将之绽译或eXe文件。本文例子创連的文件叫 Memory Status,exe,将它拷贝到 C: \My Services文件夹。为了在机器上安装这个服务,需要用 SC.EXE可执 行文件,它是Wn32 Platform sDK附带的一个工具。(译者注: saul studio net2003DE坏境中有这个工具,具体存放位置在:C: Program Files\Microsoft Visu Studio NeT2003 Common∧ Tools\ Binlwinnt)。使用这个实用工具可以安装和移阶服务。其它控制瘓作将通过服务控制面板来完成。以下是用命令行安装 Memory Status服务 sc create Memory status binpath= c: \My Services\Memory Status. exe 笈岀此创矬命令。指定服务名和二迣制文件的路径(注意 binate=和脞径之间的那个空格)。安装虒功后,便可以用服努控面板来控制这个服笋〈参见图一)用控吲 面板的工具栏启动和终止这个服务 memorystatus的属性(本匙计算机〕 规登录故障恢复|依存关系 服务名称 memorystatus 显示名称(N 可执行文件的路径(H) tatus. exe 启动类型E):手动 服务状态 已停止 启动 停止(T) 暂停(P 当从此处启动服务时,您可指定所适用的启动参数 启动参数M 确定 耿消 应用(在 图二 Memory Status服务的属性窗口 Memory Status的启动类型是手动,也貮是说根娦需要来启动这个服务。右锉单击该服务,然后选择上下文菜单屮的“属性”菜单项,此时显示该服务的属性窗凵。在这里可以 修改启动类型以救其它设置。你还可以从“常规标签中启动停止服务。以下是从系统中移涂服务的方法: sc delete memoryslatu 指定" delete选项和服务名。此服务将被标记为删除,下次西運重启后,该服务将被完全移除。 第五步:测试服务 从服务控削面启动 MemoryStatus服务如果初始化不出错,表小后动成功。过一会儿特服务停止。檢查一下C: AMy Services文件夹屮 memstatus.txt文件的服务输出 在我的机器上输出是这样的 Monitoring started 273469440 273379328 73133568 273084416 Monitoring stopped 为∫测试 Memory status服务在出错情况下的行为,可以将 memstatus txt文件设置成只读。这样一米,服务应该无法启动 去掉只读属性,启动服务,在将文件设成只读。服务将停止执行,因为此时日志文什写入失败。如果你更新服务控制面板的内容,会发现服务状态是已经停止 开发更大更好的服务程序 解win32服务的基本概念,使你能更好地用C++来设计包装类。包装类藏了对底层Wn32函数的调用并提供了一种舒适的通用拉口。修改 MemoryStatus稈序代 码,创建满足自己带荽的服务!为了实现比本文例子所示范的史复杂的任务,你可以创建多线程的服务,将作业划分成几个工作者线程并从 ServiceMan函数中监视它们的执行

...展开详情
试读 4P Windows服务程序编写
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
Windows服务程序编写 50积分/C币 立即下载
1/4
Windows服务程序编写第1页

试读结束, 可继续读1页

50积分/C币 立即下载