admin 管理员组

文章数量: 887021

最近遇到一个项目,需要我写的程序能够在系统开机后自动运行,心想着这个有什么好难的,把程序往Startup(启动)目录一扔就行,实在不行通过注册列表把程序添加到开机启动项(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)目录下;

然而折腾了半天,无论我用什么方法实现开机启动,最终发现开机后如果我不登录系统账户的话程序根本不允许(根据项目要求,程序运行的系统的管理员账户必须要设置密码);

于是我各种百度方法测试,终于找到一篇有效的方法。

文章来自:Windows中实现不依赖账户登录的开机启动程序 ,但是这篇文章前面两种方法不行,文章里的第三种方法来自http://www.slyar/(Slyar大神)的一篇文章:

win下开机不登陆系统自动运行程序 ,这篇文章利用了Windows的服务来启动你的程序;

具体配置方法原文有介绍,但是需要的工具下载地址链接失效,我重新找了其他的下载地址。

==============================华丽丽分割线========================

以下是我自己的配置过程,仅供参考:

1、将Instsrv.exe(可以给系统安装和删除服务)和Srvany.exe(可以让程序以服务的方式运行)下载下来放在某个目录下(下面用%path%代替具体目录路径);

比如:我放在“D:\InstSrv_Srvany”

2、打开命令行CMD,输入“%path%\instsrv ServerName %path%\srvany.exe” 后回车;

%path%表示Instsrv.exe和Srvany.exe的目录(我的服务目录 D:\InstSrv_Srvany),ServerName为你要创建的服务名称(我的服务名称:TsTechBlackSmoke);

比如,我的命令:D:\InstSrv_Srvany\instsrv TsTechBlackSmoke D:\InstSrv_Srvany\srvany.exe

3、打开regedit注册表编辑器,找到以下目录

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServerName>

比如:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TsTechBlackSmoke

 

4、鼠标右键单击<ServerName>,创建一个”项”,名称为”Parameters”

5、鼠标左键单击”Parameters”,在右边点击鼠标右键,创建一个”字符串值”(REG_SZ),名称为”Application”,数值数据里填写你要执行的程序完整路径。

6(可选)、鼠标左键单击”Parameters”,在右边点击鼠标右键,创建一个”字符串值”(REG_SZ),名称为”DependOnService”,数值数据里填写该服务依存的服务名称。不知道依存是什么的,你可以保持继续不知道,我不解释。

7、打开services.msc服务控制面板,找到<ServerName>,鼠标右键-属性-登陆,勾选”允许服务与桌面交互”(一般你要运行的程序都是有界面的吧)。

 

最后,大功告成,重启电脑后,看看在你不登录的情况下,程序是否会自动运行。别问我怎么确定是你登录之前自动运行的,还是你登录后运行的,自己想;

本文标签: 自动运行 程序 系统 Win