procedure TForm1.SetCDAutoRun(AAutoRun: Boolean);
const
DoAutoRun: array[Boolean] of Integer = (0, 1);
var
Reg: TRegistry;
begintry
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists('System\CurrentControlSet\Services\Class\CDROM') thenbeginif Reg.OpenKey('System\CurrentControlSet\Services\Class\CDROM', False) then
Reg.WriteBinaryData('AutoRun', DoAutoRun[AAutoRun], 1);
endfinally
Reg.Free;
end;
ShowMessage('Your settings will take effect on the next reboot of Windows.');
end;
Here is the translation of the text into Russian:
Процедура Delphi под названием SetCDAutoRun позволяет включать или отключать функцию автоматического запуска для CD в Windows.
Вот разбивка того, что код делает:
Процедура принимает параметр boolean AAutoRun, который указывает, нужно ли включить (true) или отключить (false) функцию автоматического запуска.
Код использует класс TRegistry для взаимодействия с реестром Windows.
Код проверяет, существует ли ключ реестра "System\CurrentControlSet\Services\Class\CDROM". Если он есть, то открывает подключение к нему и записывает двоичное значение в него с помощью метода WriteBinaryData.
Двоичное значение устанавливается в 0 или 1 в зависимости от значения параметра AAutoRun. Это соответствует значениям в массиве DoAutoRun.
Код выводит сообщение о том, что настройки вступят в силу после следующего перезапуска Windows.
Массив DoAutoRun используется как таблица для поиска, чтобы преобразовать логическое значение параметра AAutoRun в целочисленное значение (0 или 1), которое можно записать в реестр.
Вот альтернативное решение с более современным и компактным подходом:
procedure TForm1.SetCDAutoRun(AAutoRun: Boolean);
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('System\CurrentControlSet\Services\Class\CDROM', False) then
Reg.WriteInteger('AutoRun', AAutoRun);
finally
Reg.Free;
end;
ShowMessage('Ваши настройки вступят в силу после следующего перезапуска Windows.');
end;
В этом варианте я использовал метод WriteInteger, чтобы записать одиночное целочисленное значение (0 или 1) напрямую в реестр, а не использовать массив и двоичные данные. Это делает код более простым и легче для чтения.
В статье описывается процедура, позволяющая включать или отключать автозапуск CD-rom на компьютере с помощью Delphi.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.