註冊表 Run、RunOnce 鍵值解析
絕大多數使用過 Windows 操作系統的用戶都不會對註冊表的 Run、RunOnce 鍵值感到陌生,但你真的瞭解所有這些鍵值的細節嗎?讓我們具體說來。
本文在Win2000,WinXp、Vista、Win7系統中講解Run、RunOnce註冊表鍵值,涉及如下四個:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce
一、總述
HKEY_CURRENT_USER 代表當前用戶,當前用戶登錄後才執行的操作。
HKEY_LOCAL_MACHINE 代表當前機器,所有操作在用戶登錄前就執行了。
Run 鍵值代表着開機啓動項,也就是說在這個項下的鍵值會隨着開機啓動(這裏的開機是指用戶登錄,也就是說只要有登錄操作就會執行,註銷然後登錄,也會執行這個鍵值)。
RunOnce 鍵值類似於 Run 鍵值,唯一的區別在於,RunOnce 鍵值只執行一次,操作執行後會被自動刪除。
二、Win2000、WinXp
在 2000、Xp下,Windows對這四個註冊表鍵值的處理完全一樣。
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
1、進程由 Explorer 調起
2、多個項可以同時運行起來,無先後順序
3、可以直接登錄到桌面
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce
1、進程由 Explorer 調起
2、多個項不可以同時運行起來,必須等待一個進程結束後,另外一個進程方可運行起來
3、在所有進程結束前,不能登錄到桌面
三、Vista、Win7
在 Vista、Win7 ,Windows 對這四個註冊表鍵值的處理也完全一樣,在 Vista、Win7 下,有完整性級別,requireAdministrator manifest(即exe上是否有小盾牌標誌)的概念,所以情況稍微複雜些。
無盾牌標誌的程序
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce
1、進程由 Explorer 調起
2、多個項可以同時運行起來,無先後順序
3、可以直接登錄到桌面
4、進程的完整級別爲Medium Mandatory Level
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce
1、由 runonce.exe 調起,runonce.exe 由 Explorer調起,runonce.exe 的完整級別爲High Mandatory Level
2、多個項不可以同時運行起來,必須等待一個進程結束後,另外一個進程方可運行起來
3、在所有進程結束前,不能登錄到桌面
4、進程的完整級別爲High Mandatory Level
5、進程結束後,runonce.exe 跟着結束
有盾牌標誌的程序
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce
1、由於權限問題,進程不會被運行
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce
1、由 runonce.exe 調起,runonce.exe 由 Explorer調起,runonce.exe 的完整級別爲High Mandatory Level
2、多個項不可以同時運行起來,必須等待一個進程結束後,另外一個進程方可運行起來
3、在所有進程結束前,不能登錄到桌面
4、進程的完整級別爲High Mandatory Level
5、進程結束後,runonce.exe 跟着結束
四、額外的 RunOnceEx 鍵值
在 Win2000、WinXp中,存在一個特例的註冊表鍵值RunOnceEx,註冊表全路徑爲:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnceEx。關於這個鍵值,99%的程序都不會用到,因此不做詳細說明,微軟官方的文檔地址