作者HZYSoft (PCMan 2004)
看板EZsoft
標題Re: [問題] 關於綠色可攜
時間Sat Feb 11 02:01:46 2006
※ 引述《timyau (偉哉!WinII A501)》之銘言:
: 其實以前的軟體都是綠色可攜的不是嗎...
: 不知道為什麼
: 到了windows的時代
: 軟體就越來越多必須安裝了....
: 安裝還不打緊
: 為什麼要寫入registry
寫入登錄有幾個目的
1. 讓系統知道有這個程式,並且這個程式支援哪幾種檔案
這樣使用者點兩下或是按右鍵,就可以用這程式開啟 (佔大多數)
2. 為了反安裝,沒寫入登錄不會出現在反安裝程式列表
3. 有些程式會需要開機啟動,這時候必須寫入登錄
4. 有些程式會提供系統的整合功能,這點以 Norton 最為嚴重
Shell Extension 的註冊必須寫入登錄
5. 有些程式會用到 ActiveX 元件,或是其他 COM 的元件,
或安裝新元件,所以必須寫入登錄註冊 (這種的滿多)
6. 有些程式因為會和 IE 整合,所以必須寫入登錄
7. 有些程式內部有可自訂工具列的功能,而 Windows系統預設的工具列
會把這些使用者自訂工具列後的資訊存入登錄
8. 輸入法程式按照系統的規定,必須寫入登錄向系統註冊
9. 有些程式會紀錄最近開啟過的檔案,Windows 提供的開發工具,
預設存在登錄
10.有些程式會註冊系統服務,這個必須要寫入登錄
11.微軟所有的程式設計文件,全部都建議開發者把設定值存在登錄 (罪魁禍首)
並且表示儲存在 ini 檔是 Win 3.1 的舊程式,新的程式建議存在登錄
12.為了紀錄試用資訊,以及註冊狀態,這招是有試用限制的軟體會用的
13... 族繁不及備載.... 有想到改天再補
: 為什麼dll 要放到windows的目錄下
: 而不放到自己的資料夾咧?
原因如下
1. 因為同一軟體內有很多程式同時要用到,分開放很多份並不經濟,且容易出問題
2. 很多元件其實是 M$ 提供的,軟體附帶的是 M$ 的安裝程式,
M$ 預設裝到系統目錄
3. 輸入法的 dll 一般是放在系統目錄下
4. 一些特殊的 dll,例如 codec,要放在那裡其他程式才抓得到
5. 程式所附帶的 dll 是要和其他程式共用,所以必須放在那裡
6. ... 想到再補
這個問題超乎想像的嚴重,因為各個軟體安裝程式會互相覆蓋...
有時候新版蓋舊版,有時候舊板蓋新版,你以為新的蓋舊的就一定沒問題嗎?
那你就大錯特錯了。 各個版本之間有著不同的問題,而且常常不能相容
裝錯版本,小則程式毫無原因跑一半會當,大則根本完全無法啟動。
另一種常見的情況是,英文版覆蓋了中文版,害所有相關程式的中文處理
就跟著不正常,這個常常發生在 Active X 元件,Richedit 的 dll 也會
其他有的沒的嚴重問題一大堆,也是不及備載....
這就是著名的 dll hell,也是 Windows系統如此不穩定,而常常軟體裝多了
就一定必須洗掉重灌的禍首之一,且一般使用者不可能找得出是裝錯了什麼東西
所以,各位還在用 Windows 的朋友們,請保重,祝重灌愉快
: 有沒有人知道為什麼現在的軟體都這樣子啊@@a
不是現在的軟體都這樣子,是從 Windows 95 之後,就一直都是這樣子了
這個問題從有 Windows 以來就無解,所以 M$ 又提出了 Assembly 的觀念
讓同一個 dll 不同版本可以同時共存,聽起來很棒,可是...
你真的以為這樣就沒有問題了嗎? 當然並不是,到底這會不會引起更多問題呢?
讓我們拭目以待。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.50.18
※ 編輯: HZYSoft 來自: 61.231.50.18 (02/11 02:02)
1F:推 cocakl:目前來看,用windows還裝一堆軟體就難逃復原或重裝的命運 02/11 02:10
2F:推 abgne:第11點 現在M$推用XML來替代了... 02/11 03:03
3F:推 NelsonT:用 xml 與用 ini 沒啥差別阿~本質上都是存在文字檔。 02/11 10:26
4F:→ NelsonT:微軟這不是走了回頭路嗎? 雖然我也喜歡用 xml 存 :p 02/11 10:27