二 編程思想
(壹) 註冊表中隱藏驅動器的原理
在DOS WIN X/NT中 驅動器是用字母A Z表示 其中A和B表示軟盤驅動器 C到Z則表示硬盤或網絡驅動器 也就是說 總***可以支持 個驅動器
在註冊表的
HKEY_LOCAL_MACHINE\SOFARE\Microsoft\Windows\CurrentVersion\Policies\explorer下新建或修改DWORD類型的NoDrives的值 可以隱藏或顯示驅動器圖標 從而達到本程序的目的
NoDrives的取值特點
NoDrives是 字節*** 位的鍵值 從第 位到第 位的取值 就分別控制著驅動器A到Z的狀態 若第 位取值為 則將隱藏驅動器A 若第 位為 則顯示驅動器B 如此類推即可 如圖三所示
圖三
(二) DelPhi中對註冊表的讀寫過程簡介
在DelPhi中為程序員提供了壹個Tregistry類 它提供了眾多豐富的方法來完成對註冊表的修改 限於篇幅 下面只針對本實例中所用到的讀寫註冊表的方法進行簡介
( )打開壹個鍵 OpenKey()
function OpenKey(const Key: String; CanCreate: Boolean): Boolean;
( )向壹個鍵中寫入整型數據 WriteInteger()
procedure WriteInteger(const Name: string; Value: Integer);
( )讀取壹個鍵中某個具體的整型數值 ReadInteger()
function ReadInteger(const Name: String): Integer;
( )判斷某壹鍵值是否存在 ValueExists()
function ValueExists(const Name: string): Boolean;
( )關閉壹個鍵 CloseKey
procedure CloseKey;
(三) 設計方法(分為註冊表的讀寫兩部分)
隱藏 按鈕中代碼的設計思想(註冊表的寫操作)
( ) 當用戶單擊 隱藏 按鈕時 就利用OpenKey方法打開註冊表的 HKEY_LOCAL_MACHINE\SOFARE\Microsoft\Windows\CurrentVersion\Policies\explorer 判斷其下是否存在 NoDrives 鍵 若此鍵不存在 就自動建立它 然後 根據用戶選擇的選擇修改 NoDrives 的值 用戶的選擇和NoDrives的值對應關系如下 用戶選擇 A驅 則NoDrives的值為
用戶選擇 B驅 則NoDrives的值為
用戶同時選擇 A驅 和 B驅 則NoDrives的值為
( ) 根據用戶的選擇 利用方法WriteInteger() 將NoDrives的值寫入註冊表
( ) 利用CloseKey關閉打開的主鍵
(註冊表的讀操作)為了實現程序啟動時能自動判斷系統驅動器的當前狀態 還要在Form 的FormCreate()方法中利用ReadInteger()和ValueExists()讀取註冊表中NoDrives的值 然後根據讀出的NoDrives的值設置窗體上兩個復選的選擇狀態 NoDrives的值與復選框的狀態對應關系如下
NoDrives的值為 則窗體上 A驅 復選框處於選中狀態
NoDrives的值為 則窗體上 B驅 復選框處於選中狀態
lishixinzhi/Article/program/Delphi/201311/8548