win下开机不登陆系统自动运行程序

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

Jet的电脑可以定时开机了,但是他希望XP系统启动后在不登陆用户的情况下运行锐捷和电驴,拿到这个问题的时候我第一个想法就是用服务,因为大家都知道服务启动是无视用户登录情况的。

简单来说,我用SC添加了一个服务,结果失败了,因为windows那该死的服务机制,具体原因我懒得写,总之就是不行。最后我跑到Microsoft Support那里找到了解决方法。

Windows NT Resource Kit 提供了2个小工具可以帮助我:

Instrsrv.exe installs and removes system services from Windows NT.

Srvany.exe allows any Windows NT application to run as a service.

Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行,你可以到我博客里的下载基地下载"Slyar_InstSrv_Srvany.rar"得到它们。下面我来说具体安装过程。

1、将Instsrv.exe和Srvany.exe放置到某目录下,下面用%path%代替路径

2、打开CMD,输入以下内容,其中ServerName为你要创建的服务名称

%path%\instsrv ServerName %path%\srvany.exe

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServerName>

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

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

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

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

恩,一般这样就可以了。

原文出处:http://www.slyar.com/blog/win-instsrv-srvany-server.html

补充:程序可以启动后,instsrv.exe可删除,srvany.exe不能删除(包括路径都不能删,不能动)

谢谢原作者,帮我解决了问题

时间: 2024-10-29 19:08:41

win下开机不登陆系统自动运行程序的相关文章

如何在LINUX中开机、登陆、退出、定时、定期自动运行程序

1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序.例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window. 2.登录时自动运行程序 用户登录时,bash首先自动执行系

Android实现开机自动运行程序

有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景:手机开机后,自动运行程序,在屏幕上显示"Hello. Istarted!"字样. 背景知识:当Android启动时,会发出一个系统广播,内

[VC]VC实现开机自动运行程序

有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { CString str; HKEY hRegKey; BOOL bResult; str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &

如何在Linux实现自动运行程序

1.开机启动时 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init. init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc.d ( /etc/rc?.d) 目录下的脚本文件,可以使init自动启动其它程序. /etc/rc:This file is responsible for starting/stopping services when the runlevel changes 例如: 编辑 /etc/rc.d/r

在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误的解决办法

问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:经过查找和试验,最后发现是的Winsock协议配置有问题,导致网络连接出现异常,有资料说是因为360安全卫士拦截网络访问通道导致的. 解

7、NFC技术:让Android自动运行程序

用于描述NDEF格式数据的两个重要的类 NdefMessage:描述NDEF格式的信息 NdefRecord:描述NDEF信息的一个信息段  NdefMessage和NdefRecord是Android NFC技术的核心类,无论读写NDEF格式的NFC标签,还是通过Android Beam技术传递Ndef格式的数据,都需要这两个类. 向NFC标签写入数据的步骤 获取Tag对象 Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 判

开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误

已经解决,问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:经过几个星期断断续续的查找和试验,最后发现是的Winsock协议配置有问题,导致网络连接出现异常,有资料说是因为360安全卫士

CentOS开机自动运行程序的脚本

有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动.方法如下: cd /etc/init.dvi youshell.sh   #将youshell.sh修改为你自己的脚本名编写自己的脚本后保存退出.在编写脚本的时候,请先加入以下注释 #add for chkconfig#chkconfig: 2345 70 30#description: the description of the shell   #关于脚本的简短描述#processname: servicename        

/etc/rc.local 与 /etc/init.d Linux 开机自动运行程序

1. /etc/rc.local 这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里 --------引用---------------------- 在完成 run level 3 的服务启动后,如果我还有其他的动作想要完成时,举例来说, 我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚重新开机完毕,那么, 是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式连结到 /etc/rc.d/rc3.d/ 里面