Windows Vista で HKEY_LOCAL_MACHINEの値を読み取る - Delphi 2007

Windows VistaでHKEY_LOCAL_MACHINEの値を読み取る例です。 UACがONの場合、Administratorに昇格していない場合はHKEY_LOCAL_MACHINEの読み取りしかできません。
  Reg:=TRegistry.Create();
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
  
  //メールクライアント情報を取得
  if Reg.OpenKey('\SOFTWARE\Clients\Mail\',false) then
  begin
  	//ここは通らない
  end;
上記のコードではOpenKeyできません。Accessプロパティを設定して下記のとおりにする必要があります。
  Reg:=TRegistry.Create();
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
  Reg.Access:=KEY_READ;

  //メールクライアント情報を取得
  if Reg.OpenKey('\SOFTWARE\Clients\Mail\',false) then
  begin
  	//ここも通る
  end;

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2014-04-02
作成日: 2007-01-01
iPentec all rights reserverd.