比如你教乙個不會開車的人開車,一來就叫他座到方向盤後面說:開吧!……嗯?就是先點火啊!什麼你不會點火?擰這個鑰匙啊!什麼然後怎麼辦!掛檔啊,就這玩推上去呀!然後踩油門不就完了嗎!唉唉唉拜託先把手剎放了好不好!這個這個就這個放下去啊!要死的趕緊抓住方向盤啊!轉過去啊!!!眼睛看前方表看我要撞上了啊啊啊啊!!!
好了吧?如果乙個軟體剛開啟就不停的問你核心是哪種,快取放**,鏈結庫在**,視窗管理器是哪個,並且每次啟動都重複同樣的問題,赫赫,你就不會問這種問題了
好了,那麼言歸正傳,軟體安裝在後台到底幹了些什麼事情呢???上大學的時候寫寫過c程式.c編譯之後,為.obj,連線之後為.exe 安裝就是把.exe拷貝到安裝目錄下嗎??????
.........查資料,一番忙活。。。。。參考
以windows為例
①檔案從安裝源位置拷貝到目標位置。
②往系統目錄寫入一些必要的動態連線庫(dll)。(可選)
③往系統登錄檔中寫入相應的設定項。(可選)
④建立開始選單裡的程式組和桌面快捷方式。(可選)
⑤其他動作。(可選)
,或者它依賴的dll在幾乎所有的系統中都一定有的,並且它也不依賴於登錄檔裡面的設定項的軟體。
2)這一步,可以說至少有一半軟體在安裝時都會做,一些軟體,需要用到某個dll,特別是那些軟體作者開發的dll,或者系統中不常用的dll,一般都會隨軟體的安裝拷到系統目錄。所謂系統目錄,在win98下一般是在windows\system這個目錄,而win2k是在winnt\system32,winxp是在windows\system32。還有,一些軟體如qq遊戲,中游等,它們也用到一些dll,由於這些dll只是這個軟體自己用到,別的其他軟體不會用到,所以它們並不一定存在於系統目錄,而是放在軟體安裝目錄裡面,這樣的dll已經在上一步中被拷貝,所以和這一步說的情況不一樣。
3)這一步同樣至少有一半軟體會做,一般在安裝前使用者的設定和一些選項,在安裝時就會把這些設定寫到登錄檔裡。另外就是有時在上一步把dll拷貝到系統目錄時,一些dll需要向系統註冊,這些dll的註冊資訊也會寫在登錄檔裡。還有,一些軟體有時可能安裝時並不寫登錄檔,而是在第一次執行時才把一些設定寫到登錄檔。
4)這個非常簡單,大概不需要怎麼解釋。建立這些快捷方式一方面是便於使用者執行,另外在時也會把解除安裝的快捷方式放在程式組裡。關於解除安裝後面我們再來討論。
5)這個就是除了上面說的以外的其他情況。例如有些軟體安裝時會先把所有檔案(或一部分檔案)先解壓到臨時目錄,那麼安裝完之後就要把這些檔案刪除掉。
so,理論上,任何軟體,如果你非常確切地知道了它在上面的那幾步都具體做了些什麼,特別是2和3,那麼,理論上你可以把這個軟體的安裝檔案拷貝到另一台機子,把必要的dll從系統目錄拷貝到那一台機子的系統目錄,再把登錄檔裡軟體寫入的專案匯出來(必要時還要修改一下)再匯入到那台機子的登錄檔中,那麼,就算不是綠色軟體,你也能這樣把它移植給另一台機。但有時特別是一些共享軟體,一般都會有登錄檔中設定比較隱蔽的專案,不容易查詢,所以除非你對系統非常熟悉,否則不是綠色軟體的軟體要移植還是有一定的難度的。
but,為什麼安裝完後要重啟電腦?
在windows作業系統上,一般乙個正在執行中的程式,作業系統是不讓你修改它的,修改包括替換,改動和刪除。那麼有時,一些軟體需要向系統目錄中寫入乙個dll,而系統目錄中原來已經有同名的dll並且這個dll目前正在被系統使用,因此不能用新版本去替換它,這個時候就需要重啟,在重啟的過程中,在這個dll舊的版本被使用之前用新版本替換它。這就是為什麼要重啟的原因。
為什麼要安裝python軟體 為什麼軟體需要安裝?
主要是為了方便使用者操作,畢竟安裝程式是使用者接觸這個應用程式之前的第乙個應用程式,自然是希望操作越簡單越好,最好是可以不停地下一步或者繼續就可以安裝成功 這也給了那些惡意軟體操作的空間,如 安裝 在安裝期間,最常見的就是設定安裝路徑,還有的呢會進行修改 windows 設定,如一些環境 node,...
軟體oem要注意什麼 ERP軟體為什麼要二次開發
erp軟體為什麼要二次開發?隨著資訊科技的進步和激烈市場競爭的多元化,企業採用引進erp這種具有最先進的管理思想和方法的資訊系統,以提高企業的整體效率和市場競爭能力。但由於各企業的都有自己獨特的管理理念與企業文化特點,必然會存在一些無法滿足企業本身需求或與企業產生不適合的情況,這時候,erp軟體二次...
關於為什麼要反轉畫布的問題
quartz中預設的座標系統是 沿著x軸從左到右座標值逐漸增大 沿著y軸從下到上座標 值逐漸增大。在ios中,如果使用uiimage物件來包裹建立的cgimage物件,可以不需要修改ctm。uiimage將自動進行補償以適用uikit的座標系統。而如果是對uiview.image填充了乙個,需要手動...