windows系统中,如果想让某个应用程序开机运行,可以采取的方法:1,放在启动里;2,计划任务;3,添加为服务等等。但是有细微区别。方法1、2只能在登录Windows系统后才能正常启动,而方法3则能在系统启动后,不需要登录到桌面,应用程序就能启动。
那么我们现在就来说怎样为exe程序添加成服务的方法:
第一种:命令行方式:
windows有个sc create命令:
现在我们到c:\windows\system32里面找到cmd.exe右键,以管理员身份运行:
输入
如:sc create zrginfo binpath= D:\zrg.exe type= own start= auto displayname= zrg_info
其中 zrginfo为服务名,可以在系统服务中找到,(通过在命令行运行services.msc打开系统服务)。
binpath为你的应用程序所在的路径。
displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入regedit打开注册表,在HKEY_LOCAL_MACHINE — SYSTEM — CurrentControlSet 下找到你的服务显示名)
注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切记。
这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。
第二种:注册表方式:
系统服务跟以下的注册表几个项目相关:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
一般是上面两个,有的也有下面这个。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services
那么,我们可以观察在系统服务中已注册的服务的键值来做参考,照着创建值实现:
在以上几个注册表列中添加一个新项:名字是你想要添加系统服务的名字,比如ZRGINFO
点ZRGINFO项右边新建一个字符串,数值名称Displayname 数值数据为要添加服务的,比如名称zrg_info
再同样的方式,添加其它字符串
需添加字符串含义:
Displayname(服务的名称),键值:填上你想要显示的服务名称
Description(描述),键值:填上你想要的服务描述
ImagePath (路径),键值:填上要添加程序的路径
Start (启动), 键值: 有0,1,2,3,4,一般选2,自动(详细见下面附录说明)
ErrorControl(差错控制),键值: 1
Type (类型),键值: 10 or 20 ,一般应用程序都是10,其他的对应20
ObjectName(项目名),键值: LocalSystem,值表示项目本机运行
附录:注册表的服务启动项 Start类型详解
Start=0 boot
Start=1 system
Start=2 自动
Start=3 手动
Start=4 禁用
boot 由启动引导程序加载的设备驱动器。
system 在核心初始化过程中启动的设备驱动器。
auto 每次计算机重新启动时,甚至没有人登录计算机时,都能自动开始的服务。
demand 必须手动启动的服务。如果没有指定“start=”,这就默认值。
disabled 不能启动的服务。要启动一个禁用的服务,把启动类型更改为其他值
delayed-auto 自动延时启动。此时start=2并且DelayedAutostart=1 ;Start为其它值时,DelayedAutostart为1不起作用。 服务管理器不能及时更新delayedautostart的值
对应于SC命令行来设置服务启动类型
SC config “SERNER_NAME” START= {BOOT|SYSTEM|AUTO|DEMAND|DISABLED|delayed-auto}
接下来启动服务
SC Start “SERVER_NAME”
指定服务的起始类型。
点击数:2478