温馨提示:网站使用自适应技术,手机与电脑显示界面不同,电脑界面显示效果更佳。

做了个小站,积累一些技术,分享一些原创
    体会生活,记录一些小随笔,闲说心得

windows自带的命令添加exe为服务,从后台启动

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

你可能也喜欢下面相关文章:

发表回复

必填项已用*标注