2007-12-10

變更讀卡機和 USB 隨身碟的圖示

由於新電腦有買內建的 USB 多合一讀卡機,開完機以後,會蹦出四個「卸除式磁碟」,除了磁碟機代號不一樣外,圖示和標籤都一樣,每次插入記憶卡,都要去猜倒底是插到那個磁碟,除非你讀卡機使用的頻率很高、記得那個插槽是那個磁碟,不然總是要猜也不勝其擾。我記得當好人幫忙重灌 Sony VAIO 時,看到人家 Notebook 內建的 MS 讀卡機都有專用圖示,就想為什麼我的讀卡機會沒有?如果說,你是外接式那種多合一的讀卡機就算了,因為每次插進去新增出來的磁碟機代號都不一定一樣,但內接式的讀卡機難道不能和 VAIO 的一樣,給我每個讀卡機一個圖示,方便我使用記憶卡嗎?

又要請出 Google 大神了。其實要達到這個目的也不難,主要有兩個步驟:首先,最好「固定」這些磁碟機的磁碟代號 (Drive Letter)。因為每次開機或插入 USB 磁碟的時候,系統都會從可用的磁碟機代號中依序挑一個來指定,所謂的「依序」,就是從 C 槽開始找,第一個沒有人在用的磁碟代號,所以當你接著內建讀卡機(內接 USB 針腳)、又連接 USB 硬碟開機的時候,他們就會各自去「搶」磁碟機代號,先搶到的先贏。我會去手動指定這些內接裝置的磁碟機代號,而且,順序會「從後面開始」,避免其他外接裝置裝著開機來搗亂。自己的習慣,會把光碟機燒錄機指定成 Z:,還有變更虛擬光碟機 (Y:) 和網路硬碟 (X:),所以讀卡機的四個抽取式磁碟分別指定成 S:, T:, U:, V: (W: 沒用到備用),指定方法很簡單,就「我的電腦」右鍵「管理」來叫出「電腦管理」程式,選擇磁碟管理,在要更改代號磁碟機的上面按右鍵,選擇「變更磁碟機代號及路徑」,變更一個你要的磁碟機代號就可以了。

好了,固定這些內接裝置的磁碟機代號後,接下來我們來指定他們的圖示,這個動作要叫出 regedit.exe、這個內建的 registry 登錄編輯程式。用「執行」敲入 regedit,先找到下面的位置:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer

在裡面按右鍵新增機碼「DriveIcons」,接下來進到新增的機碼內,根據磁碟機代號來新增設定圖示和標籤的相關機碼。舉例來說,我先指定第一個 SD 讀卡機 S:,在以下位置右鍵新增一個機碼「S」:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\DriveIcons

然後針對這個 S: 磁碟機,在以下位置載新增兩個機碼,分別是指定圖示的「DefaultIcon」和指定預設標籤的「DefaultLabel」:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\DriveIcons\S

最後就是指定圖示的位置,以及標籤名稱了。由於 SD 讀卡機圖示系統內建的 shell32.dll 裡面就有,因此我指定的系統預設就有的 ICON,標籤給他支援的記憶卡名稱:

DefaultIcon=c:\windows\system32\shell32.dll,193
DefaultLabel=SD / MMC

第一行指定的意思是:要取用 shell32.dll 裡面 ID 193 的圖示使用,從這張 shell32 的示意圖來看,原來系統也還有 CF (ID:189)、SM (ID:194) 的圖示,依序去新增機碼並設定 CF、SM 和 MS 等記憶卡的讀卡機後,原來四個不知所謂的「卸除式磁碟」,變成一目了然的圖示和說明,再也不會搞不清讀卡機了。看到這裡一定有人會問:我上面獨漏 MS (Sony Memory Stick) 的圖示啊,或是還要指定 shell32.dll 裡面的圖示好麻煩,有沒有獨立的 .ico 檔可以下載啊?有!可以參考這篇文章,或是使用該文提供的下載檔案,讀卡機的圖示檔就可以隨你指定了(當然你要自己畫也可以)。

我內建讀卡機的四個插槽,分別是 S: T: U: V: 四台磁碟機,要插記憶卡並存取的時候不會弄錯了吧~

搞定內建讀卡機的圖示,那,身邊的 USB 隨身碟或外接式硬碟,能不能也這樣搞啊?行!但是,因為 USB 儲存裝置會到處抽插,在每個電腦不同環境「磁碟機代號」可能每次都不一樣,所以上述改 Registry 這招是行不通的。不過,既然是儲存裝置,那就把以上的圖示檔和設定存在該裝置裡面不就行了?這裡用的手法,是透過「卸除式裝置」的「自動執行」原理,步驟也很簡單,首先,在你隨身碟的根目錄新增一個檔案,檔名叫 autorun.inf,貼入如下內容(以我的隨身碟:PQI Intelligent Stick 256MB 為範例,實際使用請依照自己的裝置資訊來修改):

[autorun]
icon=\PQI.ico
label=PQI Intelligent Stick 256MB

同樣的,第一行是在指定圖示的路徑和檔名(我把圖示檔 PQI.ico 也放在隨身碟根目錄),第二行是指定磁碟機標籤的名稱,存檔搞定!當你打開檔案總管或我的電腦時,該磁碟機圖示和標籤就變成你指定的樣子:

我的 20GB 2.5" 外接式硬碟 (G:)、和 USB 隨身碟 PQI 256MB (F:),圖示檔是我自己做的,和實品一模一樣喔!

這樣當你帶 USB 隨身碟或硬碟去別的電腦抽插和貪婪的時候,能讓對方更快速地識別的插入的新增磁碟機在哪裡,此密技不但實用(尤其當你外接裝置多的時候),還可以炫耀~

附註:如果你不想用檔案總管、打開 USB 儲存裝置根目錄時看到上面的 .inf 和 .ico 這兩個檔,覺得很醜又怕被改到,可以開 Dos 視窗、先切到該磁碟機代號,用 attrib 指令去更改這兩個檔案的屬性,命令像是:

attrib +r +h +s autorun.inf PQI.ico

你就會發現你隨身碟根目錄的這兩個檔案,屬性被設成唯讀、隱藏和系統檔,這樣就看不到、也不怕會被不小心改到了。(這樣搞某種程度上還可以防止被近日流行的 USB 隨身碟病毒感染,一舉數得喔~)

回應: 4

danfon 提到...

Abin你好!這篇改隨身碟外觀與名稱的文章非常實用!也是我找了很久的資訊,在此非常感謝你的分享!不過小弟照著你的作法執行時,發現一個美中不足的地方,就是要移除隨身碟從右下角工具列按移除硬體時,它的名稱卻還是原本的USB mass storage之類的本名,並不會一併改成我修改過的新名稱呢,後來去探索一些相關的作法也找不太到修改此處的方式,所以不知道Abin有沒有什麼好想法可以分享一下呢?

Abin 提到...

To danfon:
USB mass storage 的本名是在裝置管理員裡 USB 外接儲存裝置的通稱,不只是「名字」、還是一種裝置的類別,沒有辦法去修改它,就算可以,也是去硬改 registry,這樣不但有風險,下次在插拔的時候也會失效。所以我認為應該是沒有辦法改的。

Howard 提到...

非常實用喔!!感謝!!

匿名 提到...

DefaultIcon=c:\windows\system32\shell32.dll,193
DefaultLabel=SD / MMC
上面這2行怎嚜修改啊
不懂 ㄋㄟ

張貼留言

歡迎隨便亂哈啦留言或發表意見,不過要理性不做人身攻擊~匿名的朋友得到回應的速度會比較慢喔~
請注意發問相關的禮貌和規矩,不當留言、和本文無關的回應可能會被直接刪除無視喔!