可以通过修改Windows的注册表来改变Windows服务的启动顺序,Windows服务的注册信息可以在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\键下找到。下面就介绍几个与服务启动顺序相关的服务的键值:
Group值:一个REG_SZ类型的值。它用来描述服务属于那一个服务组。如果服务没有这一项,那么它不属于任何一个服务组,系统则会默认的将其在所有的服务启动后加载。
Tag值:一个REG_DWORD类型的值。它用来描述服务的标识。每一个在服务组中的服务都会被分配一个唯一的标识。注册表通过对服务组的服务标识的排列来安排,同一服务组中的个服务的加载先后顺序。
那么,如何改变服务的启动顺序,现在就被分为了两个步骤,一是:改变服务组的启动顺序。二是:改变服务组中各服务的启动顺序。
改变服务组的启动顺序:
注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder键的List值中保存了表示服务组启动顺序的信息。每一个服务组都是一个字符串,通过字符串在值中排列的先后位置表示服务组被加载的先后顺序。要想改变服务组的加载顺序,只要改变它们的位置就可以了。
事实上,你说的这种方法我之前也知道,缺点就是要降低IE安全度,但这个可以通过生成hta文件解决。
我现在唯一的问题就是子目录下的文件都找不到,可以考虑写个bat文件,不过这样也很麻烦,有没有更好的方法呢?
#!/bin/sh -------不解释了
/etc/rcd/initd/functions -------执行etc下rcd下initd文件夹里面的functions程序
exec=/usr/sbin/atd -------赋值
prog="atd" -------赋值
config=/etc/sysconfig/atd
[ -e /etc/sysconfig/$prog ] && /etc/sysconfig/$prog -----如果/etc/sysconfig/下存在atd文件,就执行
lockfile=/var/lock/subsys/$prog ----赋值
1、服务是与其他用户程序隔离的,通常运行于会话0。
2、服务的工作目录为系统目录(System32、SysWOW64),通过服务启动的应用程序也是如此。
3、最简单的实现是:在 *** 作系统中创建计划任务(使用任务计划程序)
4、如果你确实希望通过服务程序来实现,且更新程序不需要用户交互,那么可以只需要在“Update”的主函数(Main)第一行加一句“SystemIODirectorySetCurrentDirectory(AppDomainCurrentDomainBaseDirectory);”;
5、如果你确实希望通过服务程序来实现,且更新程序需要用户交互,那么需要使用到Win32API中的“CreateProcessAsUser”函数,相应地还需要用到“WTSEnumerateSessions”和“WTSQueryUserToken”。
参考如下网页:
>
启动文件夹里隐藏的文件不启动这是系统机制的一部分,不然的话启动文件夹里有的
Desktopini
开机时也会启动了。一般的程序不能直接作为系统服务启动,因为一般的程序中缺乏与系统服务管理器交互的接口。我建议还是可以把程序放在注册表中
Run
子键里。
让计算机开机时自动运行某个程序方法:
方法一:
右击任务栏空白处-属性-自定义-勾选“启用拖放” ;
左键拖动程序执行文件(exe,bat)的快捷方式,到左下角的开始,不要松鼠标;等菜单d出,仍然不要松鼠标,移动鼠标到所有程序-启动-空内,松开鼠标 。就可以了。
方法二:
打开C:\Documents and Settings\你的用户名\「开始」菜单\程序\启动,将可执行文件的快捷方式拷贝到这里就可以了。
以上就是关于windows 服务程序 启动的执行顺序 是怎样的全部的内容,包括:windows 服务程序 启动的执行顺序 是怎样的、如何通过远程服务器启动本地应用程序、用shell脚本写一个服务的启动程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)