RSS   



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


 
 18  1/2  1  2  > 


 
主題: 為何有些軟體愛搞登錄檔?跟著登錄檔垃圾越來越多?   字型大小:||| 
ultraplayer
初出茅驢
等級: 1


 . 積分: 1
 . 文章: 9
 . 收花: 0 支
 . 送花: 0 支
 . 比例: 0
 . 在線: 16 小時
 . 瀏覽: 1550 頁
 . 註冊: 7318
 . 失蹤: 1262
#1 : 2005-3-24 06:48 PM     只看本作者 引言回覆

有些軟體愛搞登錄檔?非要把設定檔放在登錄檔不可,跟著登錄檔垃圾越來越多,然後重灌後軟體就不能用了,直接把資料放在程式目錄裡不就好了,為啥一定要放登錄檔?


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8215
 . 失蹤: 5568
#2 : 2005-3-24 07:02 PM     只看本作者 引言回覆

以前就是用.INI 的檔案, 結果, 每個軟體都需要INI file
so, MS 就推動用registry, registry 就像是系統的資料庫一樣
任何軟體的資訊, 都記錄到registry 內, 統一管理
而且, OLE 的功能, 也需要透過registry 來進行相關記錄
so, 用registry 是需要的

Acute.



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


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

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



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


 . 積分: 79
 . 文章: 77
 . 收花: 275 支
 . 送花: 5 支
 . 比例: 0.02
 . 在線: 966 小時
 . 瀏覽: 5000 頁
 . 註冊: 7436
 . 失蹤: 813
#4 : 2005-3-25 05:00 PM     只看本作者 引言回覆

個人倒是持不同的看法

我覺得Microsoft最失敗的的地方 就是使用registry紀錄系統的參數設定

使用registry紀錄系統參數 有兩個最大的缺點

1.registry裡的系統參數只在開機時讀一次 所以當registry裡的系統參數被更動之後
 一定要重新開機

2.如果registry檔案損毀 對不起 只有重灌Windows一途

呵呵 這二個大缺點 就使得Windows永遠無法擠身一流作業系統的地步

同樣行之有年的UNIX系統 卻也不見使用類似Windows的方式紀錄系統參數
而是將參數個別紀錄在相關的檔案裡 並且是動態的將系統參數載入
也因此 即使今天更動了UNIX的虛擬記憶體設定 也只需要將系統重新讀取一次
參數檔案 不必像Windows一般重新開機

registry也是提供病毒窩身的一個優良的環境 因為大家共用一個registry檔案
所以 安全性就相對的降低許多 別說registry損毀 病毒只要更動某個參數
就可以讓Windows動彈不得

至於AP使用registry紀錄相關的設定 更是一大敗筆
第一.registry檔案的大小 必須在系統一開機就固定 (你可以更動registry檔案的大小 但是
必須重新開機) 如果registry的檔案被佔滿了 那就只有重新開機一途

第二.大多數的AP在移除時 並不會主動的移除registry裡的設定 有些AP使用到Windows
的系統元件時 Windows本身更不允許移除這個AP紀錄在registry裡的設定
要移除 只有重新開機一途 如果不移除 只會導致registry越來越肥大
惡性循環就由此開始 下次Windows開機時 又要將這個肥大的registry讀一次...

你可以發現 使用Windows作業系統時 重新開機的次數 幾乎與你安裝AP的次數差不多

呵呵 Windows如果不使用registry的話 我想 會比現在更穩定

以前在DOS的時代的Windows 3.1 也沒有使用registry 是使用INI的方式紀錄系統
設定 Windows 3.1一樣也可以使用OLE....
而且 只要Windows 3.1的系統執行檔正常
那麼 只要備分所有的INI檔案 就可以保證永遠有一個乾淨的Windows 3.1可以用

不像現在 要用GHOST之類的軟體來備份Windows...



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8215
 . 失蹤: 5568
#5 : 2005-3-25 06:54 PM     只看本作者 引言回覆

1. registry 只在開機讀一次?
   基本上, 任何軟體都可以在任何時候讀取/修改registry, 並沒有所謂的開機讀一次, 改了就得重開機的問題.

2. registry 檔案損毀, 需要重灌?
   基本上, 系統有backup registry, 如果registry 損毀, 系統開機時會告知內容損毀, 並且重新載入最後backup 的registry file, 並沒有所謂需要重灌Windows 這一回事

3. Windows 因為上述兩個問題, so, Windows 非一流作業系統, 因為UNIX 不使用?
    基本上, Windows 算幾流不值得爭議, 但是, UNIX 是老系統, 當然不會有這種作法.
    Windows 3.1 也沒有大量使用, 直到95以後, 才大量使用這種作法.
    這個作法, 跟Windows 設計的好不好, 沒有任何直接關係才對, 呵呵

4. registry 檔案大小固定? 滿了需要重開機
    基本上... 這是我第一次聽說, 不知道根據哪份文件? 或者根據啥證據?
   根據我個人粗淺認知, registry 就是一種資料庫架構而已, 從沒聽過資料庫需要一開始就決定file 大小的

5. AP 不移除registry, AP registry 不准移除, 移除需重開機?
   基本上, AP 移除時, 有沒有跟著移除registry, 這是AP 的問題, 跟Windows 沒有關係
    理論上, 並不會有不准移除的registry
   實際上, 我沒有遇過要移除registry 而需要重開機的現象

基本上, registry 的觀念是好是壞, 或許值得爭議
但是, 觀念要先正確!
以資料庫的方式管理所有程式的設定值, 固然有資料庫損毀就毀掉一切的可能性存在
但是, 就更多方面的考量, 統一管理總是比散落各處要好很多
以前的Windows 不複雜, 系統參數有限, 就有幾個很複雜的INI file了
現在的Windows 的複雜度, 如果還是靠INI file, 那將是一場惡夢
而且, 一堆散落的INI file, 只要他跟目前registry 功能相似 (可以用來調控系統參數)
那在registry 具備的缺點, 在INI 內也必然具備

Acute.



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


 . 積分: 79
 . 文章: 77
 . 收花: 275 支
 . 送花: 5 支
 . 比例: 0.02
 . 在線: 966 小時
 . 瀏覽: 5000 頁
 . 註冊: 7436
 . 失蹤: 813
#6 : 2005-3-25 08:58 PM     只看本作者 引言回覆

>>基本上, 任何軟體都可以在任何時候讀取/修改registry, 並沒有所謂的開機讀一次, 改了就得>>重開機的問題.

呵呵 安裝codec要不要重新開機啊?裝完PowerDVD 要不要重新開機啊?

裝完新版的IE 要不要重新開機啊? 在Windows更新Update後 要不要重新開機啊?

你可以試試 把IE的暫存資料夾搬到其他目錄 看看Windows會要求你做什麼...

>>基本上, 系統有backup registry, 如果registry 損毀, 系統開機時會告知內容損毀, 並且重新>>載入最後backup 的registry file, 並沒有所謂需要重灌Windows 這一回事

嗯 我不知道Windows會自動Backup Registry喔 請大大告知在哪裡可以設定自動backup的
選項...

>>基本上... 這是我第一次聽說, 不知道根據哪份文件? 或者根據啥證據?  根據我個人粗淺認知, >>registry 就是一種資料庫架構而已, 從沒聽過資料庫需要一開始就決定file 大小的

在Windows 2000的系統選項裡...

>>基本上, AP 移除時, 有沒有跟著移除registry, 這是AP 的問題, 跟Windows 沒有關係
>>理論上, 並不會有不准移除的registry   實際上, 我沒有遇過要移除registry 而需要重開機的現>>象

嗯 這是單純的AP的問題喔... 如果真是這樣的話 網上也不會有一大堆
registry cleaner的軟體囉

資料庫有很多種方式 不是只有registry才是資料庫啊

registry最大的缺點 就是把系統的參數與AP的參數 紀錄在同一個檔案裡
這樣對作業系統來說 是很不利的

還有 複雜度與registry也沒有太大的關係 UNIX系統也很複雜
新進的LINUX系統 也不見得比windows單純 但是 這兩個系統都沒有使用與
Windows相類似的做法

INI檔案可以分開儲存 但是registry只有一份喔

基本上, registry 的觀念是好是壞, 或許值得爭議
但是, 觀念要先正確!

[aamaster 在 2005-3-25 09:02 PM 作了最後編輯]



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


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#7 : 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
#8 : 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  快速回覆 新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8215
 . 失蹤: 5568
#9 : 2005-3-25 11:05 PM     只看本作者 引言回覆

1. 安裝/解除安裝某些軟體需不需要重開機, 問題跟registry 一點關係都沒有
    問題在於該軟體的模組有沒有能力在系統沒有reboot 的情形下自動卸載
    so, 這並非registry 的問題, 而是該軟體模組的問題

2. registry 是auto backup 的, maybe 在regsitry 裏面有相關的record 可以改變是否backup

3. Windows 2000 有設定registry size 的畫面? 麻煩貼出來瞧一瞧, 我還真沒見過該畫面哩

4. 軟體廠商沒有善盡清除registry 的工作, 才會有那些所謂cleaner 程式, 這跟registry 架構本來就沒關係, 不可以本末倒置, 就好像沒有人無聊寫病毒, 自然不需要掃毒程式, 而不是沒有掃毒程式不行.

5. Unix/Linux 很多東西是不能調整的, Windows 的registry 提供調整的契機. Unix/Linux 並沒有像Windows 那麼複雜的OLE 機制, 所以他可以不需要.

6. 我說: registry 是一種資料庫架構, 並非說registry 才是資料庫, 請看懂中文的意思 @_@

7. INI 最大問題就是散落一地, 所以registry 才提供整合的作法, 所有程式透過統一的界面機制運作, 這樣子管理上才是方便的. 而且OLE 複雜的叫用界面也是利用registry 當作溝通橋樑, 如果是散落一地的INI, 根本不可能可以做到.

Acute.



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


今日心情

 . 積分: 693
 . 精華: 3
 . 文章: 1494
 . 收花: 4870 支
 . 送花: 7306 支
 . 比例: 1.5
 . 在線: 1019 小時
 . 瀏覽: 16274 頁
 . 註冊: 7448
 . 失蹤: 1349
#10 : 2005-3-26 02:40 AM     只看本作者 引言回覆

最喜歡看這種沒有人身攻擊,
各憑自己的專業知識,
冷靜以對的討論與分析,
宛若八仙過海,
各顯神通。

沒事沒事,
不要理我,
妳們繼續,妳們繼續.....



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


今日心情

 . 積分: 1386
 . 精華: 2
 . 文章: 2945
 . 收花: 9537 支
 . 送花: 3671 支
 . 比例: 0.38
 . 在線: 1295 小時
 . 瀏覽: 19041 頁
 . 註冊: 7452
 . 失蹤: 1454
#11 : 2005-3-26 03:17 AM     只看本作者 引言回覆

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

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

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

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



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


 . 積分: 8
 . 文章: 63
 . 收花: 55 支
 . 送花: 5 支
 . 比例: 0.09
 . 在線: 956 小時
 . 瀏覽: 80 頁
 . 註冊: 7410
 . 失蹤: 3495
#12 : 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
#13 : 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  快速回覆 新增/修改 爬文標記
jocosn
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


今日心情

 . 積分: 1386
 . 精華: 2
 . 文章: 2945
 . 收花: 9537 支
 . 送花: 3671 支
 . 比例: 0.38
 . 在線: 1295 小時
 . 瀏覽: 19041 頁
 . 註冊: 7452
 . 失蹤: 1454
#14 : 2005-3-26 04:06 AM     只看本作者 引言回覆


引用:
swimman寫到:
.net程式如果只使用LOCAL元件就可以直接拷貝執行,那種稱為xcopy安裝
如果有使用元件是放在GAC那就不行了
....(略)


對阿,不想用 registry 的人用 Java
Java 的程式都沒有登入檔



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
桂正和
銀驢友〔初級〕
等級: 12等級: 12等級: 12
論壇第一窮

今日心情

 . 積分: 448
 . 文章: 777
 . 收花: 3245 支
 . 送花: 1392 支
 . 比例: 0.43
 . 在線: 1624 小時
 . 瀏覽: 33426 頁
 . 註冊: 8019
 . 失蹤: 1461
 . 台灣
#15 : 2005-3-26 08:22 AM     只看本作者 引言回覆


引用:
Acute寫到:
3. Windows 2000 有設定registry size 的畫面? 麻煩貼出來瞧一瞧, 我還真沒見過該畫面哩
Acute.


個人認為
我想他說的是記憶體分頁的東西
系統裡面怎麼看都只有這東西有設定大小..

至於重開機才能使登錄檔生效..
如果我沒記錯的話
軟體只要有需要
就會自己跑去找登錄檔
這是很基本的流程邏輯吧.......
看的不知所以然
感覺似是而非



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

 18  1/2  1  2  > 
   

快速回覆
表情符號

更多 Smilies

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

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


 



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