Zistenie a zmena CD autorun nastavenia.

uses Registry;
 
function IsCdAutoRunOn : bool;
var
  reg: TRegistry;
  AutoRunSetting : integer;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', False);
  reg.ReadBinaryData('NoDriveTypeAutoRun', AutoRunSetting, sizeof(AutoRunSetting));
  reg.CloseKey;
  reg.free;
  result :=  not ((AutoRunSetting and (1 shl 5)) <> 0);
end;
 
procedure SetCdAutoRun(bOn : bool);
var
  reg: TRegistry;
  AutoRunSetting : integer;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.LazyWrite := false;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', False);
  reg.ReadBinaryData('NoDriveTypeAutoRun', AutoRunSetting, sizeof(AutoRunSetting));
  if bOn then
    AutoRunSetting := AutoRunSetting and not (1 shl 5)
  else
    AutoRunSetting := AutoRunSetting or (1 shl 5);
  reg.WriteBinaryData('NoDriveTypeAutoRun', AutoRunSetting, sizeof(AutoRunSetting));
  reg.CloseKey;
  reg.free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsCdAutoRunOn then
    ShowMessage('CD AutoRun Is On') else
    ShowMessage('CD AutoRun Is Off');
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  SetCdAutoRun(True);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  SetCdAutoRun(False);
end;