Windows开机自启动程序的位置(XP、Win71011、x64)
我们经常会遇到许多不请自来自己启动的程序,还有许多是我们不想让它启动的程序,为了便于管理,故列出Windows可以使程序自动启动的位置。
文件夹
1. 当前用户专有的“启动”文件夹
比较常用的一个位置,“X:\Documents and Settings\<用户名字>“开始”菜单\程序\启动”,或者“X:\Users\<用户名字>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”。
2. 所有用户的“启动”文件夹
同样常用的位置,“X:\Documents and Settings\All Users“开始”菜单程序启动”,或者“X:\Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup”。
注册表
1. 首先是最常用的RUN键
注册表启动最常用的键,有两个位置,分别为 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] 和 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run],其下的所有程序在每次启动登录时都会按顺序自动执行,HKLM先于HKCU运行,但都在“启动”文件夹之前;
还有两个不被注意的Run键,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run] 和 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run],也要仔细查看;
还有一个[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run]键据说也可以启动。
2. 安装程序或病毒常用的RunOnce键
该键仅运行一次,之后会自动删除,位置为[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] 和 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]。
3. 运行服务一次的RunServicesOnce键
RunServicesOnce注册键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册键启动的程序,其中的程序会在系统加载时自动启动执行一次。位置为[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]。
4. 运行服务的RunServices键
RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]键。
5. XP和2003特有的RunOnceEx键
位置为 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]。
6. Load键
其下属键值开机运行并最小化,位置为[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows],而如果建在local_machine下不起作用。
7. Winlogon键
该键位于位于注册表[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell键值也会有自启动的程序(未一一测试),而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。如通常在Userinit值键下面有一个userinit.exe,但这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)。
8. 其他一些注册表项
还有一些其他键值,经常会有一些程序在这里自动运行,如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\SystemScripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SystemScripts]
9. x64系统特有的位置
在64位系统中显示32位系统的注册表,均在[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node]下,其中相应的注册表项也存在,例如[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run]和[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce]等。
其他启动项
1. Win.ini文件
在[windows]段下的“Run=”和“LOAD=”语句后面就可以直接加可执行程序,只要程序名称及路径写在“=”后面即可。
另:“load=”后面的程序在自启动后最小化运行,而“run=”后程序则会正常运行。
2. System.ini文件
其[boot]段下“shell=”语句,该语句默认为“shell=Explorer.exe”,启动的时候运行Windows外壳程序explorer.exe,可以修改。
3. wininit.ini文件
该文件很容易被忽视,因为该文件在Windows启动时自动执后会被自动删除,这就是说该文件中的命令只会自动执行一次。
4. 计划任务
比较方便,也比较容易忽视的位置。
注:查看启动项,可以通过msconfig或autoruns等第三方软件。