免费注册 找回密码     

查看: 5376|回复: 1
打印 上一主题 下一主题

把程序注册为服务的方法

[复制链接]

2万

主题

2万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1
发表于 2009/12/12 23:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
增加一个服务:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息服务管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%inetsvr.exe

  保存为inetsvr.inf,然后:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:pathinetsvr.inf

  这个例子增加一个名为inetsvr的服务(是不是很像系统自带的服务,呵呵)。


几点说明:

  1,最后四项分别是

  服务类型:0x10为独立进程服务,0x20为共享进程服务(比如svchost);

  启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(服务控制管理器)自动启动,3 手动启动,4 禁用。(注意,0和1只能用于
驱动程序)

  错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。

  服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或Windows),%12%为
驱动目录system32drivers。其他取值参见DDK。你也可以不用变量,直接使用全路径。

  这四项是必须要有的。

  2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不介绍了。

  3,inetsvr后面有两个逗号,因为中间省略了一个不常用的参数flags。

  删除一个服务:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
DelService=inetsvr

  很简单,不是吗?

  当然,你也可以通过导入注册表达到目的。但inf自有其优势。

  1,导出一个系统自带服务的注册表项,你会发现其执行路径是这样的:

"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00

  可读性太差。其实它就是%SystemRoot%system32 lntsvr.exe,但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加服务时,这样定义ImagePath显然很不方便。而使用inf文件就完全没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。

  2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必须重启才有效。

  3,inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的服务。

  另外,AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。

0

主题

1

帖子

1

积分

新手上路

Rank: 1

2
发表于 2010/11/5 17:52 | 只看该作者
楼主大作。实乃在下平生闻所未闻,见所未见。由始至终一气贯通,笔力之精神,行如游云,倏如闪电,下笔之处,一笔不拖,恰似凤舞龙飞一般;
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|兴宁A8 ( 粤ICP备08126561号-15 粤公网安备44140202000139号)  

GMT+8, 2024/4/19 21:42

© 兴宁A8

手机绑定 兴宁A8支持手机、电脑、平板一站式访问!

快速回复 返回顶部 返回列表