1. 用C语言编写Windows服务程序的五个步骤 Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务 。为了学习这种控制台应用程序的基础知识 , C(不是C++)是最佳选择 。本文将建立并实现一个简单的服务程序 , 其功能是查询系统中可用物理内存数量 , 然后将结果写入一个文本文件 。最后 , 你可以用所学知识编写自己的 Windows 服务 。当初我写第一个 NT 服务时 , 我到 MSDN 上找例子 。在那里我找到了一篇 Nigel Thompson 写的文章:“Creating a Simple Win32 Service in C++” , 这篇文章附带一个 C++ 例子 。虽然这篇文章很好地解释了服务的开发过程 , 但是 , 我仍然感觉缺少我需要的重要信息 。我想理解通过什么框架 , 调用什么函数 , 以及何时调用 , 但 C++ 在这方面没有让我轻松多少 。面向对象的方法固然方便 , 但由于用类对底层 Win32 函数调用进行了封装 , 它不利于学习服务程序的基本知识 。这就是为什么我觉得 C 更加适合于编写初级服务程序或者实现简单后台任务的服务 。在你对服务程序有了充分透彻的理解之后 , 用 C++ 编写才能游刃有余 。当我离开原来的工作岗位 , 不得不向另一个人转移我的知识的时候 , 利用我用 C 所写的例子就非常容易解释 NT 服务之所以然 。
2. 怎么把一个程序写入服务 要把应用程序添加为服务 , 你需要两个小软件:Instsrv.exe和Srvany.exe 。Instsrv.exe可以给系统安装和删除服务 , Srvany.exe可以让程序以服务的方式运行 。这两个软件都包含在Windows NT Resource Kit里 , 如果你没有 , 自己下载
把这两个程序保存在一个方便的位置 , 例如C盘根目录下 。举例来说明 , 把OE作为一个服务添加进Windows XP Professional操作系统中 , 并把这个服务命名为“Mail” 。在运行中输入“CMD” , 回车 , 打开命令行窗口 , 在提示符后面直接输入:“c:\ instsrv.exe Mail c:\srvany.exe”然后回车 , 其中的“c:\instsrv.exe”和“c:\srvany.exe”表示这两个程序保存的位置 , 而Mail 则是你想添加的服务名称 。
运行Regedit打开注册表编辑器 , 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下 , 找到刚才添加的Mail , 点击右键 , 新建一个键 , 命名为“Parameters” , 点击新建的Parameters , 并再次新建一个名称为 “Application”的子键 , 数据类型为“REG_SZ” , 数值为希望作为服务运行的程序的所在位置 , 如果你的Windows系统安装在C盘下 , 那么OE的程序位置就是C:\Program Files\Outlook Express\msimn.exe , 把这个路径添入数值中 。到现在 , 这个服务已经成功的添加并且设置好了 。如果你希望做的更加专业 , 可以在Mail服务下建立一个名为 Description的子键 , 数据类型同样为REG_SZ , 数值可以写一些你对这个服务的描述
接下来需要对服务做一些额外的设置 , 在运行中输入“Services.msc”并回车 , 在列表中找到我们刚添加的Mail服务 , 双击打开 , 来做详细的设置 。在“General”选项卡上 , 我们需要设置这个服务的运行方式 , 在图二中可以看见 , 作为一个服务 , 有“自动(Automatic)” , “手动(Manual)”和“禁止(Disabled)”三种启动类型 , 按照需要 , 我们一般设置成自动就可以了 。而在“Logon”选项卡下可以设置以什么身份运行这个服务 , 一般可以不用理会 , 按照默认的设置 。“Recovery”选项卡下则是进行恢复设置的 , 你可以指定 , 在服务第一次 , 第二次和第三次出错之后分别采取什么措施 。“Dependencies”则显示了服务之间的依存关系 , 可以让你察看这个服务的运行依赖哪些其它服务 , 以及还有什么服务依赖于这个服务 。这后面几个对我们一般用户没有什么意义 。经过这些设置 , 你的服务已经完全可以正常工作了 。
- 贴息申请怎么写
- 毛笔字石怎么写
- 开学啦的作文怎么写
- 最好单词怎么写
- word悬挂缩进如何设置 word悬挂缩进怎么设置
- 孔雀鱼的品种介绍-孔雀鱼怎么样?
- word格式刷怎么用 word格式刷怎么用视频
- 疲倦的的英文怎么写
- 活动的备注怎么写
- 文献标题怎么写