軟體為什麼需要注冊表
Ⅰ 安裝軟體為什麼要寫注冊表
寫注冊表主要是為游戲配置保存方便一點,如果是office這種軟體,是要和系統緊密結合在一起的,所以更要寫注冊表了。簡單得來說,注冊表是整個操作系統的資料庫,是核心,一般軟體當然想在這個裡面留點痕跡咯。
Ⅱ 什麼是注冊表,有何作用安裝軟體都要寫入注冊表嗎,哪些常用軟體不需要寫入注冊表注冊表可以修改嗎
[編輯本段]由來
在Windows 3.x操作系統中,注冊表是一個極小文件,其文件名為Reg.dat,裡面只存放了某些文件類型的應用程序關聯,大部分的設置放在Win.ini、System.ini等多個初始化INI文件中。由於這些初始化文件不便於管理和維護,時常出現一些因INI文件遭到破壞而導致系統無法啟動的問題。為了使系統運行得更為穩定、健壯,Windows 95/98設計師們借用了Windows NT中的注冊表的思想,將注冊表引入到Windows 95/98操作系統中,而且將INI文件中的大部分設置也移植到注冊表中,因此,注冊表在Windows 95/98操作系統的啟動、運行過程中起著重要的作用。
[編輯本段]作用
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Winnt下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所有用戶來說項都是公用的。
有些程序功能對用戶有影響,有些是作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網路參數;
瀏覽器功能性和特徵;
那些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和列印機共享;
網卡設置和協議;
系統性能和虛擬內存設置;
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Winnt和Win95系統管理基本常識。
[編輯本段]打開方式
Win98/98SE/Me
運行中輸入regedit.exe 無許可權限制
Win2000/XP
1.開始>>運行.中輸入regedt32
2.開始>>運行.中輸入regedit
第一種方法打開的注冊表編輯器和Win98下的一樣,而且功能相同,而使用第二種方法打開的注冊表編輯器則可以方便的設置許可權,建議網路管理員使用第2種方法打開注冊表編輯器修改需要修改的許可權設置部分以免被他人惡意修改。
Windows Vista/7
1.在開始菜單搜索框中輸入regedit並按回車鍵.(需要管理員許可權)
2.在運行中輸入regedit.exe(需要管理員許可權)
[編輯本段]存放位置
2000/XP注冊表文件按功能來分,也是由系統注冊表文件和用戶注冊表文件兩類組成的
注冊表文件存放系統的所有設置信息:
系統設置和預設用戶配置數據存放在系統\系統文件夾\SYSTEM32\CONFIG文件夾下的6個文件,DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中,而用戶的配置信息存放在系統所在磁碟的\Documents and Setting\文件夾,包括ntuser.dat ntuser.ini ntuser.dat.log
Ⅲ 為什麼有些程序必須依靠注冊表才能運行而有些為什麼不用注冊表就能運行呢回答者全分奉上!
助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的。
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
注冊表的演化
早在Dos和Win3.x的時代,大部分的應用程序都是採用了 ini 文件(初始化文件)來保存一些配置信息,如設置路徑,環境變數等。system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。利用一個功能強大的注冊表資料庫來統一集中地管理系統硬體設施,軟體配置等信息,從而方便了管理,增強了系統的穩定性。最直觀的一個實例就是,為什麼windows下的不同用戶可以擁有各自的個性化設置,如不同的牆紙,不同的桌面。這就是通過注冊表來實現的。
由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統、硬體設備以及客戶應用程序得以正常運行和保存設置的核心「資料庫」;是一個巨大的樹狀分層的資料庫。它記錄了用戶安裝在機器上的軟體和每個程序的相互關聯關系;它包含了計算機的硬體配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。
注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Windows NT下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win9x下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win9x 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持的設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
注冊表控制用戶模式的例子有:
★控制面板功能;
★桌面外觀和圖標;
★網路參數;
★瀏覽器功能性和特徵。
這些功能中的某些是和用戶無關的,有些是針對用戶的。
當了解了注冊表的主要功能--保存信息後,再來了解保存信息所發揮的作用!
1,記錄安裝信息;
2,設置硬體屬性;
3,定製WINDOWS以及應用軟體.
注冊表邏輯結構中最基本的是主鍵,子鍵,鍵值項以及鍵值。它們是按照分組的方式來管理和組織的。首先是最底根鍵,每個根鍵下有若干個子鍵,每個子鍵下又可以有若干(一個或多個)子鍵,子鍵下可以有一個或多個鍵值項和鍵值。
根鍵:注冊表中最底層的鍵,類似於磁碟上的根目錄。
子鍵:子鍵位於根鍵下又可以嵌套其他子鍵中,在注冊表的六大根鍵中,有若乾的子鍵,而每個子鍵中又可以嵌套成千上萬的子鍵。
鍵值項與鍵值:
在每個根鍵和子鍵下,可以有若干鍵值,這種結構類似於磁碟上根目錄和子目錄里的文件和文件內容.
windows 9x注冊表邏輯結構中包含六個根鍵,每個根鍵包含著分類不同的信息!在windowsNT/2000/XP中,如果用windows自帶的編輯器打開的時候,只能看到五個,還有一個隱藏的根鍵:HKEY_PERFOR_MANCE_DATA。
*HKEY_CLASS_ROOT
記錄windows操作系統中所有數據文件的格式和關聯信息,主要記錄不同文件的文件名後綴和與之對應的應用程序其下子鍵可分為兩類:一類是已經注冊的各類文件的擴展名,這類子鍵前面都帶有一個".";另一類是各類文件類型有關信息。
*HKEY_CURRENT_USER
此根根鍵包含當前登錄用戶的用戶配置文件信息,這些信息保證不同的用戶登錄計算機時,使用自己的修改化設置,例如自己定義的牆紙,自己的收件箱,自己的安全訪問許可權。
*HKEY_LOCAL_MACHINE
此根鍵包含了當前計算機的配置靈氣,包括所安裝的硬體以軟體設置。這些信息是為所有的用戶登錄系統服務的。這是事個注冊表中最龐大也是最重要的根鍵!
*HKEY_USERS
HKEY_USERS根鍵包括默認用戶的信息(DEFAULT子鍵)和所有以前登陸用戶的信息。
*HKEY_CURRENT_CONFIG
此根鍵實際上是HKDY_LOCAL_MACHINE/CONFIG/0001分支下的數據完全一樣。
*HKEY_DYN_DATA根鍵
這個鍵保存每次系統啟動時,創建的系統配置和當前性能信息。這個根鍵只存在於windows 9X中
*HKEY_PERFORMANCE_DATA
在windowsNT/2000/XP注冊表中雖然沒有HKEY_DYN_DAT鍵,但是它卻隱藏了一個名為"HKEY_PERFORMANCE_DATA的鍵。所有系統中的動態信息都是存放在此子鍵中,系統自帶的注冊表編輯器無法看到些鍵。介可以用專門的程序來查看此鍵,比如使用性能監視器
Ⅳ 為什麼大軟體都要注冊表,小軟體不要呢
注冊表就是登記的意思。就是告訴系統我要在你這里運行,我是合法的宿主。系統想要知道系統裡面都有哪些宿主。實時掌握軟體的運行狀況。從而分配運行所需的資源。監控軟體運行的環境。從而做出相應的反應。有些軟體是不用安裝就可以用的。因為系統的動態鏈接庫會發現非法的也就是沒有注冊的軟體。發現後。系統會給該軟體注冊一個臨時的域。以完成監控。其實還是注冊了。只是當該軟體停止時。臨時注冊的域同時也會被刪除。我告訴你軟體注冊了有好處。當你卸載時會卸載的干凈。沒有注冊的不能完全卸載干凈。因為系統找不到軟體的卷映射。
Ⅳ 為什麼有些程序需要注冊表,有些不需要,注冊表是干什麼用的。
注冊表就像是人的血管一樣,平時你看不到。可能用到了,你也不知道。它是系統的核心。記錄著一切跟你電腦相關的數據。下次啟動時,所有的數據都會從注冊表裡面調。
軟體寫注冊表也是為了記錄某些數據。比如說自啟動。比如說軟體注冊碼,還有它要調用的一些控制項,要注冊了才可以調。
Ⅵ 軟體開發需要學注冊表嗎
windows系統軟體一般都需要寫注冊表,目的為了方便管理。
不需要注冊表的軟體,是軟體本身沒有安裝windows系統的要求寫注冊表信息,一般可以看出原軟體的簡化版。
系統相當於停車場,軟體相當於車,車要停在停車場的話需要停車場管理員分配車位。
Ⅶ 為什麼安裝有的程序時需要設置注冊表,有的不要
一般正常軟體安裝時不會讓你設置什麼注冊表 它安裝時會自動寫入或創建某些鍵值 只有一些破解或綠色免安裝版的軟體 因為沒有安裝過程(未寫注冊表)為了使軟體能正常運行 才需要在注冊表中加入某些信息