【asp精品源码栏目提醒】:网学会员asp精品源码为您提供Win32位程序设计初步之服务 - 计算机教材参考,解决您在Win32位程序设计初步之服务 - 计算机教材学习中工作中的难题,参考学习。
每个操作系统都需要有在后台执行任务的方法无论是谁正在使用这部机器这些任务都可以继续运行后台任务可以处理各种重要的服务包括系统的或者用户的。
例如一个信使服务可以监控网络并且在接收到另一台机子的信息时可以显示一个对话框。
一个发送和接收传真的应用需要在启动的时候运行并且不断地监控负责传真的modem看有没有传真进来。
一个家庭的或者办公室的安全程序用来控制一件检测设备时它需要不时地查询传感器并且在适当的时候响应它。
所有这些任务都需要CPU时间来执行它们不过由于它们需要的CPU时间很少因此可以放在后台而不影响用户使用系统。
在MS-DOS中后台的任务是通过TSRTerminate and Stay Resident程序来处理的。
这些程序经由autoexec.bat文件开始。
在UNIX中后台任务是通过Daemons来处理的。
在每次启动UNIX的过程中你都可以看到操作系统启动一些任务例如定时的程序Cron和Finger的daemons然后才可以让首个用户登录。
在Windows NT中后台的任务被称为服务。
服务可在每次NT启动的时候运行并且不管是谁登陆都会一直运行下去。
Windows NT的服务都是通过一般的可执行程序实现的不同的是它遵循内部的一个特定协议来设计以便它们能够与服务控制管理器SCMService Control Manager进行正确的交互。
在这篇文章中你将学习到如何在Windows NT中创建和安装简单的Win32服务。
一旦你懂得了这个简单的服务你要建立自己的服务也不难了因为所有的服务不论是如何地复杂都必须包含有同样基本的SCM接口代码。
只要符合SCM的要求其实为服务设计的可执行文件和一般的程序并没有多少的区别。
无论是对于编程者或者系统管理员了解NT的服务如何工作都是很重要的。
编程者就不必说了因为他们要创建自己的服务而对于系统管理员也是同样重要的。
因为后台的任务可以是很危险的。
MS-DOS和Macintosh系统都是一个病毒的温床因为它们在安全性方面先天不足它们都可以允许任何人或者程序在任何时间创建后台的任务。
Windows NT和UNIX系统是较安全的因为只有系统管理员才可以为系统增加后台的任务不过如果系统管理员加入了一个破坏性的后台程序就它就可以为所欲为了。
因此系统管理员要了解Windows NT服务的技巧和权限设置就可以避免加入有潜在危险的后台任务。
基本的概念 服务有两种不同的形式。
驱动器服务使用驱动器协议让NT可以与特定的硬件进行通信。
另一个是Win32服务通过一般的Win32 API来实现后台任务。
这篇文章的重点是谈Win32服务因为它们更为常见而且创建起来也很容易。
任何的NT编程者通过使用一般的NT SDK或者Visual C并且可以用管理员的身份访问一台NT机器都可以实现和安装自己的Win32服务。
如果你想创建一些在Windows NT启动时就运行的程序并且要求它会在系统中一直运行你就要使用Win32的服务。
在NT中服务通过控制面板进行管理。
在控制面板中你会发现有一个服务的图标打开它你会看到所有Win32服务的清单。
在那里你可以开始、停止、暂停和继续某个服务。
你按下其中的启动按钮后就会出现一个对话框你可以修改启动操作以及服务使用的默认帐号。
一个服务可以在系统启动的时候自动运行也可以被完全禁止。
或者设置为手动执行。
在手动的时候用户还可以设置启动的参数。
要对服务中的项目作修改的话你需要以一个管理员或者超级用户的身份登录。
Windows NT自带有一些预装的任务用来处理诸如网络信使服务的操作或者使用“at”命令定时执行的操作以及分布的RPC命名。
在你创建自己的服务时你必须执行一个独立的安装步骤以将服务的信息插入到服务管理工具的列表中这些信息包括有新服务的名字、执行文件的名字和启动的类型等都会写入到注册表中这样在机器下次启动的时候SCM就会得到新服务的相关信息。
创建一个新的服务 执行服务的程序也是一个EXE文件不过它必须符合某些特定的规范以便可以与SCM进行正确的交互。
微软很细致地设计了函数调用的流程你必须遵循这些流程否则你的服