windows操作系统的自启动项

来源:互联网 发布:js判断奇数偶数 编辑:程序博客网 时间:2024/06/07 12:28
在注册表中"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"下面还有RunOnce,RunOnceEx,
RunServices,RunServicesOnce,等几个键值,它们的功能相近似,主要是执行的时间不同。如果不希望某个程序随系统一道启动,只要删除这几个
键值即可达到目的。
小知识:
Run:子键下面的对应的程序启动时间在“开始→所有程序→启动”文件夹中指定的启动程序之前。
RunOnce:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
子键下的程序在用户登录之后立即运行,时间在他Run键指定的程序之前,运行之后系统将会自动删除该程对应的键值,所以该键值下面的程序只有一次和系统一道启动的机会。
Runserices子键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。
RunServicesOnce:子键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册表有子键值启动的程序与RunOnce一样运行一次后自动删除相关键值项。
其实,Windows是按照两个文件夹及8个核心的注册表子键来自动加载程序的。Windows 2000/XP启动时会从以下10个地址搜索自启动程序。

1.“启动”文件夹——最常见的自启动程序文件夹。它位于系统分区的“Documents and Settings→User→「开始」菜单→程序”目录下。这里的“User”指的是你实际登录的用户名字,如果你是用管理员登录的,那么这里就应该是“Administrator”。
该文件夹里没有任何内容?别着急,这只是最简单的、最明显的存放启动程序的位置。一个“狡猾”的病毒,不会藏在这种“危险”的地方的。

2.“All Users”中的自启动程序文件夹——这是另一个常见的自启动程序文件夹,一般位于系统盘所在的“Documents and Settings→All Users→「开始」菜单→程序”目录下。前面提到的“启动”文件夹运行的是登录用户的自启动程序,而“All Users”启动文件夹里的程序,则不管登录者是谁,都会自动加载。
上面的两个是一般用户可以轻松找到的加载自启动程序的地方,另外,在注册表中还有几个键值是用来加载自启动程序的。

3.“load”键值——一个埋藏得较深的注册表键值,位于[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\
Windows\load]。

4.“Userinit”键值——它在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\Windows NT\CurrentVersion\Winlogon\Userinit],也是用于系统启动时加载程序的。一般情况下,其默认值为“userinit.exe”,由于该子键的值中可用使用逗号分隔开多个程序,因此,在键值的数值中可以加入其它程序。

5.“Explorer\Run”键值——与“load”和“Userinit”这两个键值不同的是,“Explorer\Run”同时存在于[HKEY_CURRENT_USER]和[HKEY_LOCAL_MACHINE]这两个根键中。它在两个根键中的位置分别为[HKEY_CURRENT_USER\
Software\Microsoft\Windows\CurrentVersion\
Policies\Explorer\Run]和[HKEY_LOCAL_MACHINE
\SOFTWARE\Microsoft\Windows\CurrentVersion\
Policies\Explorer\Run]。

6.“RunServicesOnce”子键——它在用户登录前及其它注册表自启动子键加载各自的程序前加载服务程序。这个子键同时存在于[HKEY_CURRENT_USER\Softvvare\Mcrosoft
\Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\Windows\CurrentVersion\RunServicesOnce]中。

7.“RunServices”子键——紧接在RunServicesOnce后,也是在用户登录前加载。分别位于[HKEY_CURRENT_USER\Software\Microsoft\
Windows\CurrentVersion\RunServices]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\RunServices]中。

8.“RunOnce\Setup”子键——其默认值确定了用户登录后加载的程序。在[HKEY_CURRENT_USER]和[HKEY_LOCAL_MACHINE]两个根键下。位置分别为[HKEY_CURRENT_USER\Software\Microsoft\
Windows\CurrentVersion\RunOnce\Setup]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\RunOnce\Setup]。

9.“RunOnce”子键——许多自启动程序主要利用RunOnce子键来自动加载。这个子键分别位于[HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\RunOnce]和[HEY_CURRENT_USER\Software\Microsoft\Windows\
CurrentVersion\RunOnce]。位于[HKEY_LOCAL_MACHINE]根键下的“RunOnce”子键在用户登录后及其它注册表的Run键值加载程序前加载相关联的程序。位于[HKEY_CURRENT_USER]根键下的“RunOnce”子键在操作系统处理完其它注册表Run子键及自启动文件夹内的程序后再加载。如果你的系统为Windows XP,你可以在[HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\RunOnceEx]中找到这个子键。

10.“Run”键值——到目前为止,Run键值是自启动程序最常见的地方。它的位置在[HKEY_CURRENT_USER\Softvvare
\Microsoft\Windows\CurrentVersion\Run]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Run]。其中[HKEY_CURRENT_USER]根键下的“Run”键值紧接着[HKEY_LOCAL_MACHINE]下的“Run”键值运行,但两个键值都在“启动”文件夹之前加载。

转载自:《

注册表中的自启动项

 》http://blog.sina.com.cn/s/blog_4a7e84db010007uf.html