RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: 為何有些軟體愛搞登錄檔?跟著登錄檔垃圾越來越多?   字型大小:||| 
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#1 : 2005-3-25 12:22 AM     全部回覆 引言回覆

registry的好處最大的是比較不會有USER去亂改
第二是有分字串跟數值不同的型態
第三有很多API可以CALL來處理
第四點兩下REG檔就可以設定完成
重灌會出問題是出在COM身上比較多吧



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#2 : 2005-3-25 10:21 PM     全部回覆 引言回覆

說到寫程式大家應該都聽說過MSDN吧
這段就是MSDN裡面找出來的

The Registry Made Easy

A Classy Way to Bypass the Awkward Registry API
(以上是文章的名稱)
By Romke Soldaat
(作者)
Compared with the bad old INI files, the Windows registry is not only a safer place for system and application
                            ^^^^^^^^^^^ini又爛又舊                                   ^^^^^^^不容易被亂改
settings, it also offers more ways to store different types of data, and lets you organize your settings in a
                                                             ^^^^^^^^^^^^^^不同的資料型態      
hierarchical manner. But, unlike the straightforward functions that deal with INI files, the registry API is more
^^^^^^^^^^^^^可以有SUBKEY,可以有類似子目錄的結構
complex. You can't just read and write data with a single function call - you must open a key before you can access it, and close the key when you're done with it.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#3 : 2005-3-25 10:35 PM     全部回覆 引言回覆

寫程式很重要就是儲存程式的狀態
大家都知道程式碼編譯好之後就沒有辦法修改
所以就必須想辦法來記錄
第一代的方法就是WIN.ini這是WIN31的時代
大家都一起寫在這個檔案裡頭
每一個APPLICATION為單位來使用
第二代的方法是privateProfile
每一個程式都有自己的INI
第三個
這也是COM風起雲湧的時代
COM利用REGRISTRY當契約的介面
每個程式都把設定放在REGISTRY
MS也有很多API可以提取這些設定
現在則是邁入了XML的時代
很多設定都是放在XML的檔案裡頭

當然除了這些之外還有人用文字檔
這個是最麻煩的方法要自己開IO處理STREAM

另外還有SERIALIZE這個方法也不錯
一口氣就可以放很多物件進去
一口氣拿出來
而且是以物件為單位
並且是用二進位的方式寫入硬碟也不太可能被修改
當然缺點也是不容易直接打開來改
通常這類的檔案附檔名是.bin大家應該也不會很陌生吧



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#4 : 2005-3-26 03:23 AM     全部回覆 引言回覆

承蒙版主關心我就多說點吧:icons8:icons8
一般寫程式會用到的registry大概就是在HKEY_LOCAL_MACHINE\Software\CompanyName\SoftwareName
或是HKEY_CURRENT_USER\Software\CompanyName\SoftwareName
另外在安裝COM元件的時候還要寫到HKEY_CLASSES_ROOT
不過這個東西幾乎都是開發工具來HANDLE
基本上公司如果肯花錢買個InstallShield X 把程式包一包他就會幫你做好安裝移除的工作,這部分的REGISTRY也不用擔心
回到主題所以移除程式REGISTRY出問題頂多是移不掉,無法重新安裝,這個軟體沒得用
不會把電腦搞到不能運作
另外提到現在程式開發已經走向.net的時代
.net已經把Registry踢進垃圾桶了,.net的設定都改用XML來做設定了
由於.net的高生產力特性而且微軟目前宣稱用80%的精力推廣
所以可以預期的大部分的REGISTRY都會消失
而且在DLL HELL的折磨之下很多人開始朝綠色軟體的方向發展
但是想要在WINDOWS上看不到registry......短時間是很難的



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#5 : 2005-3-26 03:32 AM     全部回覆 引言回覆


引用:
jocosn寫到:
毒王寫的比較有道理吧,
乍看一些東西REGISTRY只讀取一次還以為自己孤陋寡聞
感覺怎麼出個網路追追追

不過這些都不是問題
因為 .NET 的新程式允許你不用加任何的 REGISTRY
你可以設計一個純.NET程式,直接灌好後,再把該目錄下的程式直接拷貝到另一台電腦直接執行

所以大家要學就學 C#,VB.NET,VC++.NET
有 .NET 就對了 ........

我也沒試過,不知道對不對

.net程式如果只使用LOCAL元件就可以直接拷貝執行,那種稱為xcopy安裝
如果有使用元件是放在GAC那就不行了
當然如果都沒有使用.net FrameWork之外元件那當然就直接複製就可以了
不過當然要灌.net FrameWork才會動
另外建議大家要學就從C#開始
用C++那叫自找麻煩
vb.net會簡單一點但是薪水會少一些



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
swimman
驢手小試
等級: 2


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#6 : 2005-3-26 11:36 PM     全部回覆 引言回覆

看大家都對REGISTRY這麼有興趣
我再深入介紹一下registry的相關知識

這些都是從Inside windows 2000 3rd (microsoft press)中摘錄出來

1.Registry 在哪裡

HKEY_LOCAL_MACHINE\SYSTEM         c:\Winnt\System32\Config\System
HKEY_LOCAL_MACHINE\SAM              c:\Winnt\System32\Config\Sam
HKEY_LOCAL_MACHINE\SECURITY      c:\Winnt\System32\Config\Security
HKEY_LOCAL_MACHINE\SOFTWARE     c:\Winnt\System32\Config\Software
當然winnt名稱也可能會是windows這個不一定
在哪底下應該會看到一些有幾百K到幾十M的檔案

2.Registry的結構
這個跟資料結構有關還是直接去看這本書吧

3.安全性考量

以SYSTEM為例

To further protect the integrity of the crucial SYSTEM hive, the configuration manager maintains a mirror of the
                                                                                                                                             ^^^^^^^^
SYSTEM hive on disk. If you look at the nonhidden files in your \Winnt\System32\Config directory, you'll see three
^^^^^^^^^所以的確是有備份                                                ^^^^^^^^^^^^^^^^放在這裡  
files with the base name System : System, System.alt, and System.sav. System.alt is the alternate hive .
                                                   ^^^^^^^^^^^^^^^^^^^^^^^ 總共有三個實體兩個備份                                                      
Whenever a hive sync flushes dirty sectors to the SYSTEM hive, the hive sync also updates the System.alt hive. If
修改的時候都會一起備份
the configuration manager detects that the SYSTEM hive is corrupt when the system boots, the configuration
如果正式的壞了
manager attempts to load the hive's alternate. If that hive is usable, it then uses that alternate to update the original
會嘗試載入備份
SYSTEM hive.
備份如果成功載入就會覆寫到正式的
System.sav is a copy of the SYSTEM hive that exists when Windows 2000 finishes installing. This copy can be used,
System.sav是視窗安裝完成後儲存的版本
usually only in extreme circumstances, to restore the computer's configuration to its initial state.
如果REGISTRY嚴重損壞的時候就會載入這個最古早的版本



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-11-22 01:22 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.022163 second(s), 7 queries , Qzip disabled