if openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\PolicIEs\explorer',true) then
begin //打開NoDrives所在的鍵。
case form1.A_Check.Checked of
true:
temp1:=1;//當用戶點擊"A驅"復選框時,將臨時變量temp1置1。
end;
case form1.B_Check.Checked of
true:
temp2:=2; //當用戶點擊"B驅"復選框時,將臨時變量temp2置2。
end;
myval:=temp1+temp2;//將臨時變量temp1和temp2中的值求和賦給myval。因為用戶可,
//能選中兩個復選框,此時寫入注冊表的值應為1+2,所以用temp1與temp2的和賦給myval。
WriteInteger('NoDrives',myval);//利用函數創建一個DWord值"NoDrives",其值為myval
//並寫入注冊表。
myreg.CloseKey;//關閉前面打開的主鍵,完成隱藏操作。
myreg.Free;
end;
end;
end;
5、為了實現程序啟動時能自動判斷系統驅動器的當前狀態,還要在Form1的FormCreate()方法中利用ReadInteger()和ValueExists()讀取注冊表中NoDrives的值。然後根據讀出的NoDrives的值設置窗體上兩個復選的選擇狀態。程序如下:
procedure TForm1.FormCreate(Sender: TObject);
var myreg:TRegistry;
begin
myreg:=TRegistry.Create;
with myreg do
begin
rootkey:=HKEY_LOCAL_MacHINE;
if openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\PolicIEs\explorer',true) and ValueExists('NoDrives') then //如果打開鍵成功且NoDrives存在,則進行下面操作。